在c#中使用HTTP测量TTFB和TTLB

本文关键字:测量 TTFB TTLB HTTP | 更新日期: 2023-09-27 18:13:51

我正在寻找测量TTFB(时间到第一个字节)和TTLB(时间到最后一个字节)的方法,同时向特定网页发出http web请求。

如何在c#中进行测量。

我正在编写一个监控工具来测量访问网页的TTFB和TTLB。

在c#中使用HTTP测量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响应以确保请求成功,但是您明白了。