Làm cách nào để in trong hộp văn bản hoặc ở đầu ra thời gian mà chương trình chi tiêu đang chạy?Thời gian chạy chương trình đang chạy
Tôi muốn nó được hiển thị trong vòng lặp, để nhận được thời gian cần thiết cho mỗi vòng lặp.
Làm cách nào để in trong hộp văn bản hoặc ở đầu ra thời gian mà chương trình chi tiêu đang chạy?Thời gian chạy chương trình đang chạy
Tôi muốn nó được hiển thị trong vòng lặp, để nhận được thời gian cần thiết cho mỗi vòng lặp.
Bạn có thể thử:
DateTime dt = DateTime.Now;
for (.......)
{
}
TimeSpan ts = DateTime.Now - dt;
textbox1.Text = ts.TotalMilliseconds.ToString();
hoặc (theo MSDN) nếu bạn cần độ phân giải tốt hơn
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
for (.......)
{
}
stopWatch.Stop();
textbox1.Text = stopWatch.ElapsedMilliseconds.ToString();
[MSDN] (http://msdn.microsoft.com/en-us/library/system.datetime. now.aspx) tài liệu hướng dẫn cụ thể ** chống lại ** bằng cách sử dụng lớp DateTime cho các mục đích đo điểm chuẩn. – R0MANARMY
@ R0MANARMY: vâng, bạn nói đúng. Tôi đã chỉnh sửa bài đăng của mình bao gồm cả hai giải pháp. Cảm ơn – Marco
Bạn có thể sử dụng 'stopWatch.ElapsedMilliseconds' trực tiếp và loại bỏ các chuyển đổi TimeSpan trung gian – sll
var watch = System.Diagnostics.Stopwatch.StartNew();
for()
{
// ..
}
watch.Stop();
// Format 00:00:02.0001008
string elapsed = watch.Elapsed.ToString();
// Milliseconds like 2000 for 2 seconds
string elapsedMs = watch.ElapsedMilliseconds.ToString();
System.Diagnostics.Debug.WriteLine(elapsed);
+1 cho bạn, bởi vì câu trả lời của bạn là câu hỏi đầu tiên và đó là chính xác!! – Marco
giống như sau:?
DateTime start = DateTime.UtcNow;
//... processing ...
DateTime end = DateTime.UtcNow;
Syste.Diagnostics.Debug.WriteLine((end - start).ToString());
[MSDN] (http://msdn.microsoft.com/en-us/library/system.datetime.now.aspx) tài liệu hướng dẫn cụ thể ** chống lại ** sử dụng lớp DateTime cho mục đích đo điểm chuẩn. – R0MANARMY
chắc chắn tôi biết có bộ hẹn giờ tốt hơn, điều này là tốt nếu bạn muốn xem giây hoặc phút ... :) –
Bạn có thể lưu trữ các DateTime hiện khi khởi động ứng dụng, sau đó tạo ra một bộ đếm thời gian bắn mỗi giây. Khi nó bắn bạn nhận được DateTime hiện tại, trừ chúng để có được TimeSpan và sử dụng nó để điền vào hộp văn bản của bạn.
Thêm hai dòng này - Giữa vòng lặp For của bạn hoặc giữa mã mà bạn muốn kiểm tra tốc độ functinality.
Debug.WriteLine(DateTime.Now.ToLongTimeString());
--your code
Debug.WriteLine(DateTime.Now.ToLongTimeString());
Điều này sẽ không chính xác vì bạn sẽ đo không chỉ mất bao lâu mã thực thi mà mất bao lâu để biến DateTime thành chuỗi + chạy mã. Cấp nếu mã chạy trong một thứ gì đó theo thứ tự các phút một vài phần nghìn giây sẽ không đáng kể, nhưng để chạy ngắn hơn, nó có thể tạo ra sự khác biệt. – R0MANARMY
@Romanarmy, bạn là chính xác, nếu nó là loại thời gian quan trọng Dự án hạt nhân .. Và như bạn biết hầu hết các dự án chúng tôi phát triển hàng ngày là các ứng dụng Web hạt nhân. –
không, nhưng chúng tôi đã viết tất cả các mã thực thi trong một vòng lặp chặt chẽ, và làm cho nó kém hiệu quả hơn có nghĩa là trải nghiệm người dùng kém bởi vì giao diện người dùng bị khóa một giây mỗi lần người dùng nhấp vào một nút. – R0MANARMY
Hãy xem bài viết này: [Thời gian C# chức năng hoạt động với lớp Stopwatch] (http://www.dijksterhuis.org/timing-function-performance-stopwatch-class/) – R0MANARMY
Vâng, bạn thiết lập bộ hẹn giờ, chạy chương trình, ngừng bộ hẹn giờ và nhập thời gian vào hộp văn bản. Dễ dàng! Để nghiêm túc hơn, hãy thử http://msdn.microsoft.com/en-us/library/system.datetime.now.aspx và '.Subtract()' – alf