如何测量 websocket 响应所花费的时间

Posted

技术标签:

【中文标题】如何测量 websocket 响应所花费的时间【英文标题】:How to measure time taken by websocket to respond 【发布时间】:2016-05-13 05:23:14 【问题描述】:

我们在我们的项目中使用 web sockets,并且需要评估 websocket 的速度。如何测量websocket响应的时间

【问题讨论】:

发布您的代码,以便人们可以为您提供具体实施的示例 【参考方案1】:

鉴于我是 Stack Overflow 的新手,我不会写 cmets,我会尝试用你发布的信息给你一个答案。

如果你去谷歌,你会发现很多关于“如何计算经过的时间”或“Java 中的执行时间”的例子。以下示例摘自mkyong

日期().getTime():

long lStartTime = new Date().getTime();
//some tasks
long lEndTime = new Date().getTime();

long difference = lEndTime - lStartTime;

System.out.println("Elapsed milliseconds: " + difference);

System.currentTimeMillis()

long lStartTime = System.currentTimeMillis();
//some tasks
long lEndTime = System.currentTimeMillis();

long difference = lEndTime - lStartTime;

System.out.println("Elapsed milliseconds: " + difference);

System.nanoTime()

long lStartTime = System.nanoTime();
//some tasks
long lEndTime = System.nanoTime();

long difference = lEndTime - lStartTime;

System.out.println("Elapsed milliseconds: " + difference/1000000); 

完整示例

import java.util.Date;

public class TimeApp 
  public static void main(String[] argv) 

    long lStartTime = new Date().getTime(); // start time

    createArray(); // some tasks to eat time

    long lEndTime = new Date().getTime(); // end time

    long difference = lEndTime - lStartTime; // check different

    System.out.println("Elapsed milliseconds: " + difference);

  

  public static void createArray() 

    try 
      Thread.sleep(2000);
     catch (InterruptedException e) 
      e.printStackTrace();
    

    String sArray[] = new String[1000000];

    for (int i = 0; i < 1000000; i++)
      sArray[i] = "Array " + i;

  

希望对您有所帮助!

【讨论】:

只是一个要点:我不喜欢使用 Date 实例来恢复系统提供的纪元时间。它不会花费太多,无论是内存还是 CPU,但这无济于事,因为您需要针对系统中的用户调用它。 很高兴了解其他方法和注意事项。谢谢。

以上是关于如何测量 websocket 响应所花费的时间的主要内容,如果未能解决你的问题,请参考以下文章

如何测量在 Maya、Creo Parametric、Adobe Premier 等应用程序中执行任何类型的操作所花费的时间

测量 Angular 渲染指令所花费的时间

测量程序启动时动态链接所花费的时间?

Ruby 方法的测量和基准时间

测量线程等待锁所花费的时间(由 coredata 锁定)

测量 linux 上 exec()-ed 进程所花费的时间