Xét đoạn mã sau để đo thời gian request/response trong một ứng dụng Asp.Net:cách chính xác để đo lần request/response của một ứng dụng Asp.Net MVC
protected void Application_EndRequest()
{
Trace.WriteLine(string.Format("{0}:{1}",
(DateTime.Now - HttpContext.Current.Timestamp).TotalMilliseconds,
HttpContext.Current.Request.RawUrl));
}
Theo MSDN, DateTime.Now
có xấp xỉ độ phân giải 10 mili giây.
Ngoài ra, từ MSDN HttpContext.Timestamp description,
Các dấu thời gian trở về từ các
Timestamp
tài sản là thời gian địa phương của máy chủ và được thiết lập trong instantiation của đối tượngHttpContext
. Giờ địa phương bằng với thời gian UTC cộng với chênh lệch UTC.
Đoạn mã trên nên theo lý thuyết sau đó cho tôi tổng thời gian yêu cầu/phản hồi theo mili giây.
Câu hỏi của tôi là, độ chính xác của điều này sẽ như thế nào? Và có cách nào chính xác hơn hay tốt hơn để thực hiện nó không?
Cảm ơn, tôi đã xem xét điều này, tuy nhiên tôi sẽ phải bắt đầu (và lưu trữ) StopWatch ở đâu đó. HttpContext.Current.Timestamp được thêm vào khá sớm trong đường ống nên có vẻ như là một nơi tốt để đo thời gian phản hồi từ đó. – magritte
Chấp nhận điều này làm câu trả lời và sẽ nối thêm câu trả lời của bạn với giải pháp. – magritte