为什么第一次通话的响应时间比以下时间长

时间:2014-03-05 08:37:36

标签: java web-services axis2 httpresponse

我在eclipse中通过Axis2代码生成器生成了存根。

我的客户端代码如下:

ServerStub server = new ServerStub();

for (int i = 0; i < 5; i++) {
    java.sql.Timestamp requestTime = new java.sql.Timestamp(System.currentTimeMillis());

    OperationResponse res = server.operation(new operation());

    System.out.println("Response Time: " + (System.currentTimeMillis() - requestTime.getTime()) + "ms");
}

然后我得到了输出:

Response Time: 371ms
Response Time: 13ms
Response Time: 16ms
Response Time: 14ms
Response Time: 11ms

有没有人可以解释这个? THX。

P.S。服务器和客户端位于同一网段

1 个答案:

答案 0 :(得分:2)

由于类加载器,时间上的差异可能是原因。当您第一次调用时,JVM需要准备可执行的代码。这个过程需要一些时间。要执行有效时间测试,首先应该“预热”JVM并加载所有必需的类。