【问题标题】:Measuring time spent while sending data to client?测量向客户端发送数据所花费的时间?
【发布时间】:2011-02-11 17:22:45
【问题描述】:

我已尝试测量套接字发送时间的时间:

stopWatch.Start();
socket.Send(buffer);
socket.Close();
stopWatch.Stop();

但是大约 95% 的时间,秒表返回的时间小于 1 秒(使用 5mb 和更大的缓冲区)。 在 0.5-1 毫秒内运行 socket.send() 后表示文件已发送,即使您的用户仍在下载。如何更改我的代码以便返回正确的上传时间? 谢谢。

【问题讨论】:

  • 衡量数据从您的应用程序传输到网络服务器所需的时间,这是本地传输。您必须注意传出套接字何时关闭,这很可能是传输完成时。

标签: c# sockets time stopwatch


【解决方案1】:

我刚刚意识到马克可能确实是正确的。当然,您的代码不足以以一种或另一种方式提供任何指导。

【讨论】:

    【解决方案2】:

    你可以试试:

    DateTime start = DateTime.Now;
    
    socket.Send(buffer);
    socket.Close();
    
    TimeSpan span = DateTime.Now.Subtract(start);
    double msec = span.TotalMilliseconds;
    

    【讨论】:

      【解决方案3】:

      MarcB 似乎是正确的。最重要的是,请确保从您的秒表中获得更高的精度,例如

      double seconds = (double)stopWatch.ElapsedTicks / Stopwatch.Frequency;
      

      【讨论】:

        猜你喜欢
        • 2021-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-01
        • 2017-05-07
        • 1970-01-01
        • 2015-01-08
        • 2016-03-26
        相关资源
        最近更新 更多