在c#中使用HTTP测量TTFB和TTLB
本文关键字:测量 TTFB TTLB HTTP | 更新日期: 2023-09-27 18:13:51
我正在寻找测量TTFB(时间到第一个字节)和TTLB(时间到最后一个字节)的方法,同时向特定网页发出http web请求。
如何在c#中进行测量。
我正在编写一个监控工具来测量访问网页的TTFB和TTLB。
到目前为止回答的代码将给您TTLB,获得TTFB,虽然不是100%准确,您必须收听WebClient
类的事件DownloadProgressChanged
,并在其第一次调用记录由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();
或者如果你需要async:
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响应以确保请求成功,但是您明白了。