- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - phát hiện rò rỉ bộ nhớ Ruby/Ruby on Rails
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我按顺序调用了以下两个方法(按顺序使用适当的类级别字段)
public const string ProcessName = "This is"
public const string WindowTitle = "somewhat proprietary."
public Application App { get; set; }
public void Launch()
{
var theProcess = Process.GetProcesses().First(p => p.ProcessName.Contains(ProcessName))
App = Application.Attach(theProcess);
}
public void Select()
{
var window = App.GetWindow(WindowTitle);
var textBox = window.Get();
//etc, do more stuff in the window
}
当我运行它时,对 App.GetWindow()
的调用需要很长时间。好像超过一分钟。应用程序和窗口都已打开并正在运行。
我尝试过重载 GetWindow()
并尝试调用 Application.GetWindows()
Và Application.Find()
,但结果相同。
有没有人对我如何减少这段时间有任何想法,或者至少指出是什么花了这么长时间?无论如何,我都没有与我拥有的实现结婚 - 无论让我得到那个窗口对象对我来说都很好。
更新:
为了解决目前的评论,我修改了代码以尝试消除尽可能多的其他问题。
public void Select()
{
var processes = Process.GetProcesses().ToList();
var process = processes.First(p => p.ProcessName.ToLower().Contains("notepad"));
App = Application.Attach(process);
var window = App.GetWindow("Untitled - Notepad");
}
我加入了可枚举评估以消除任何延迟执行。而且,我用我的应用程序和记事本都试过了。上面的代码,对于我的应用程序和记事本,在调试器中立即执行前 3 行,然后在这两种情况下在最后一行上花费过多的时间。
(White 似乎有可能在内部推迟执行 Application.Attach
,但我对这个工具了解不多,所以这对我来说非常不透明。)
第二次更新:
下面是 GetWindow() 方法所用时间的明细。该应用程序在 GetWindow() 中花费了大约 10% 的时间,因此超过一半的时间花在了 WaitTillFound() 中,几乎所有时间都花在了 Retry() 方法中。关于如何减少该时间(或减少找到后在 Window 构造函数中花费的时间)的任何想法?
câu trả lời hay nhất
不清楚在等待之后是否真的找到了目标窗口。如果是 - 那确实是非常奇怪的行为。总之,当您调用 GetWindow 时,White 会尝试在一段时间内找到该窗口,默认为 30 秒(间隔为 200 毫秒)。所以很可能这就是你所经历的 - 白色出于某种原因找不到你的目标窗口。您可以通过以下方式配置此超时:
TestStack.White.Configuration.CoreAppXmlConfiguration.Instance.FindWindowTimeout = 0;
如果为 0,如果找不到窗口,它将立即失败。您还可以使用其他小于 30 秒的值。
关于c# - Application.GetWindow() *非常*慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36065302/
Cập nhật: Vui lòng phản đối tôi vì vấn đề là tôi đã đặt tên tệp là _stylesheet.html.erb thay vì _stylesheets.html.erb. Tôi nghĩ tôi đã kiểm tra chính tả của mình, nhưng có vẻ như tôi đã không làm vậy. Tôi xin lỗi vì đã làm lãng phí thời gian của mọi người
Tôi có một trình cài đặt Inno Script đang chạy sub-setup.exe trong đó. Khi cung cấp các tham số cài đặt im lặng cho trình cài đặt chính, tôi phải cung cấp các tham số cài đặt im lặng cho setup.exe. Lệnh chạy tập lệnh Inno: [R
Tôi đang cố gắng tìm kiếm các chuỗi con dài và gần đúng trong cơ sở dữ liệu lớn. Ví dụ: một truy vấn có thể là một chuỗi con 1000 ký tự có thể khác với kết quả khớp hàng trăm khoảng cách Levenshtein đã chỉnh sửa. Tôi nghe nói lập chỉ mục q-gram có thể làm được điều đó
Tôi đang cố triển khai Chế độ xem bản vẽ rất đơn giản trong ứng dụng của mình. Đây chỉ là một phần nhỏ trong đơn đăng ký của tôi nhưng nó đang thực sự trở thành một rắc rối. Đây là những gì tôi có cho đến nay, nhưng tất cả những gì nó hiển thị bây giờ là mã morse như dấu chấm và dòng. -(v
Tôi có một truy vấn sql đang chạy rất chậm và tôi không hiểu tại sao. Truy vấn là: SELECT DISTINCT(c.ID),c.* FROM `content` c LEFT JOIN `content_meta`
Tôi đã tìm kiếm điều này nhưng tất cả các kết quả tôi tìm thấy đều vô nghĩa đối với tôi và có vẻ quá phức tạp. Tôi muốn sử dụng mô-đun json hoặc simplejson để lấy giá trị của một chuỗi trong một đối tượng. chuỗi = '{"tên": "Alex"}
Tôi muốn viết một trình tạo lưu lượng sao chép các yêu cầu đọc và ghi thô trên bộ nhớ từ một máy tính đang chạy. Nhưng máy tính đang chạy cũng hiển thị vị trí (rất mạnh) trong các tham chiếu bộ nhớ của nó và trong không gian địa chỉ 64 bit, chỉ một phạm vi địa chỉ rất nhỏ sẽ được tham chiếu (trên thực tế, tôi có
Tôi đang cố gắng giải một bài toán Project Euler nhưng nó liên quan đến việc cộng một số vào một số rất lớn. (100!) Int và long trong Java quá nhỏ. Cảm ơn gợi ý về câu trả lời hay nhất, lớp BigInteger có vẻ như có thể
Tôi muốn triển khai một công cụ vật lý trong trò chơi của mình để tính toán quỹ đạo của các vật thể khi lực tác dụng lên chúng. Engine sẽ tính toán từng trạng thái của một đối tượng dựa trên trạng thái trước đó của nó. Tất nhiên, điều này có nghĩa là thực hiện nhiều phép tính giữa hai đơn vị thời gian để đủ chính xác. Để làm điều này một cách chính xác, trước tiên tôi muốn biết
Chỉnh sửa3: Được tối ưu hóa bằng cách giới hạn việc khởi tạo mảng chỉ ở số lẻ. Cảm ơn @Ronnie! Edit2: Cảm ơn mọi người, có vẻ như tôi không thể làm gì được. EDIT: Tôi biết rằng Python và Haskell được triển khai bằng các ngôn ngữ khác và ít nhiều
Bối cảnh Tôi có một máy khách/máy chủ phương tiện đơn giản mà tôi đã viết và tôi muốn tạo một giá trị thời gian không rõ ràng mà tôi gửi từ máy khách đến máy chủ bằng mỗi lệnh. Dấu thời gian sẽ chứa khá nhiều dữ liệu (độ phân giải nano giây, mặc dù nó không thực sự
Một người bạn đang tuyển dụng kỹ sư phần mềm muốn tôi phát triển một ứng dụng cho anh ấy. Anh ấy muốn có thể tìm kiếm hồ sơ ứng viên dựa trên kỹ năng. Như bạn có thể tưởng tượng, có hàng trăm, có thể hàng nghìn kỹ năng. Cách tốt nhất để đại diện cho các ứng cử viên trong một bảng là gì? Tôi đang nghĩ về kỹ năng
Ý tôi là "chậm" là loại gọi lại đợi máy chủ từ xa hết thời gian chờ để kích hoạt hiệu quả (gọi nguồn cấp dữ liệu vimeo, phân tích cú pháp, sau đó hiển thị uiviews trong cảnh) Tôi hầu như không hiểu cách thức hoạt động của nó. Tôi muốn Chế độ xem của tôi được điền từ cuộc gọi lại ngay khi phản hồi được trả về
Xin chào, tôi đang xem xét sử dụng hàng đợi người tiêu dùng của nhà sản xuất nhanh chóng và đáng tin cậy để chuyển đổi luồng. Tôi đang làm việc trên Windows bằng VC++. Thiết kế của tôi dựa trên hàng đợi Anthony Williams, về cơ bản là hàng đợi có boost::c
Tôi chỉ thắc mắc về trải nghiệm của bạn với tính năng chia sẻ lại. Chúng tôi có một tệp dbml rất nặng vì cơ sở dữ liệu của chúng tôi có rất nhiều bảng và mỗi lần tôi cần mở tệp, tôi nhận được rất nhiều ngoại lệ từ trình chia sẻ lại. Có ai gặp phải điều này trước đây?
Tôi hiện đang sử dụng chức năng ẩn/hiển thị trong jQuery để giúp lọc các bảng thành các nhóm từ hộp chọn. Mã thực tế chạy tốt nhưng rất chậm, đôi khi phải mất một hoặc hai phút để thực thi. Tôi đã chuyển mã để nó sử dụng css({'display':'
Tôi đã gọi hai phương thức sau theo thứ tự (sử dụng các trường cấp lớp thích hợp theo thứ tự) public const string ProcessName = "This is" public const string WindowT
Tôi đang gặp khó khăn trong việc hiểu tài liệu/ví dụ mô tả gói phản ánh. Tôi là người kỳ cựu về lập trình mệnh lệnh, nhưng mới làm quen với Haskell. Bạn có thể hướng dẫn tôi một cách giới thiệu rất đơn giản được không? Gói: https://hackage.haskell.org/pack
Đã đóng cửa. Câu hỏi này không tuân thủ nguyên tắc Stack Overflow. Câu trả lời không được chấp nhận vào thời điểm này. Các câu hỏi yêu cầu chúng tôi giới thiệu hoặc tìm các công cụ, thư viện hoặc tài nguyên bên ngoài trang web yêu thích đều không có chủ đề đối với Stack Overflow vì
Tôi đang cố gắng viết một đoạn mã để thao tác với một tài liệu rất dài (hơn một triệu dòng). Trong tệp văn bản này, có các khoảng cố định (cứ sau 1003 dòng) và các dấu thời gian nhất định ở giữa có dữ liệu tôi cần, nó dài 1000 dòng, có tiêu đề và hai dòng trống nhưng tôi không cần.
Tôi là một lập trình viên xuất sắc, rất giỏi!