Tôi đã xem xét việc tăng tốc ứng dụng của mình vì nó là hiệu suất quan trọng ... tức là mỗi mili giây tôi có thể thoát ra khỏi nó là tốt hơn. Để thực hiện điều này, tôi có một phương thức gọi một số phương thức khác và mỗi phương thức khác được bao gồm với bộ hẹn giờ Stopwatch
và các cuộc gọi Console.WriteLine
. Tức là .:Console.WriteLine tăng tốc mã của tôi?
private void SomeMainMethod()
{
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
SomeMethod();
sw.Stop();
Console.WriteLine("Time for SomeMethod = {0}ms", sw.ElapsedMilliseconds);
sw.Reset();
sw.Start();
SomeOtherMethod();
sw.Stop();
Console.WriteLine("Time for SomeOtherMethod= {0}ms", sw.ElapsedMilliseconds);
//...
}
Vấn đề là bất cứ khi nào tôi nhận xét ra Stopwatch
và Console.WriteLine
dòng mã chạy khoảng 20ms (không 50) chậm hơn đó là rất nhiều cho những gì tôi cần.
Có ai biết tại sao điều này không?
EDIT: Phương pháp SomeMainMethod
và những người khác trong lớp cũng được bọc trong một Stopwatch
và Console.WriteLine
cuộc gọi tương tự như trên.
SomeMainMethod
và các phương thức mà nó gọi là một phần của lớp là một phần của Thư viện lớp được gọi từ bảng điều khiển bảng điều khiển, tất cả đều là chuỗi đơn.
Để biết thêm thông tin: Ứng dụng đang chạy ở chế độ Phát hành .NET 4.6.1 với chế độ tối ưu được bật. Tôi cũng đang chạy nó trong studio trực quan 2013 không phải bên ngoài nó.
Điều đó có âm thanh kỳ quặc lạ .. Tôi không thể nói rằng Ive nhận thấy những thay đổi về tốc độ như vậy – BugFinder
Nếu bạn không sử dụng Đồng hồ bấm giờ, bạn sẽ không đo thời gian trong cùng một cách_. Bạn đã tính toán điều đó chưa? – stuartd
@stuartd nhưng hes nói rằng bằng cách tháo đồng hồ bấm giờ và hiển thị * chậm hơn *, không nhanh hơn? do đó có ít mã – BugFinder