我正在寻找在向特定网页发出 http web 请求时测量 TTFB(到第一个字节的时间)和 TTLB(到最后一个字节的时间)的方法。
如何在 C# 中进行测量。
我正在编写一个监视工具来测量访问网页的 TTFB 和 TTLB。
我正在寻找在向特定网页发出 http web 请求时测量 TTFB(到第一个字节的时间)和 TTLB(到最后一个字节的时间)的方法。
如何在 C# 中进行测量。
我正在编写一个监视工具来测量访问网页的 TTFB 和 TTLB。
到目前为止回答的代码将为您提供 TTLB,以获得 TTFB,虽然不是 100% 准确,但您必须收听课程的事件DownloadProgressChanged
,并在第一次通话时记录到目前为止WebClient
记录的时间,而不是停止它StopWatch
.
您可以使用WebClient进行阻塞调用并测量所需时间:
using (var wc = new WebClient())
{
var sw = new Stopwatch();
sw.Start();
wc.DownloadData("http://www.stackoverflow.com");
sw.Stop();
Console.WriteLine("Elapsed time (ms): " + sw.ElapsedMilliseconds.ToString());
}
Console.ReadLine();
或者,如果您需要异步执行:
static Stopwatch sw;
static void Main(string[] args)
{
using (var wc = new WebClient()) {
sw = new Stopwatch();
sw.Start();
wc.DownloadDataCompleted +=wc_DownloadDataCompleted;
wc.DownloadDataAsync(new Uri("http://www.stackoverflow.com"));
}
Console.ReadLine();
}
static void wc_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
sw.Stop();
Console.WriteLine("Elapsed time (ms): " + sw.ElapsedMilliseconds);
}
当然,您可能希望捕获错误并检查 http 响应以确保请求成功,但您明白了。