Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java API性能的正常行为?_Java_Spring_Performance_Rest - Fatal编程技术网

Java API性能的正常行为?

Java API性能的正常行为?,java,spring,performance,rest,Java,Spring,Performance,Rest,我目前正在测试API性能,发现最初的几个请求总是非常慢。对于相同的请求,为1000ms至3000ms。在jMeter中运行时,它最终会在300ms左右持续响应。服务器位于世界的另一端,如果这有区别的话 这是一个使用Spring用Java编写的RESTAPI JSON响应。 获取请求 有一个Authorization和accept/json头 我还注意到,不成功的回答平均比成功的慢。这是否与不同状态代码的不同性能有关?或者更可能是代码问题 查看我的日志,服务器中的所有事务在1毫秒内完成。我可以想到

我目前正在测试API性能,发现最初的几个请求总是非常慢。对于相同的请求,为1000ms至3000ms。在jMeter中运行时,它最终会在300ms左右持续响应。服务器位于世界的另一端,如果这有区别的话

这是一个使用Spring用Java编写的RESTAPI JSON响应。 获取请求 有一个Authorization和accept/json头

我还注意到,不成功的回答平均比成功的慢。这是否与不同状态代码的不同性能有关?或者更可能是代码问题


查看我的日志,服务器中的所有事务在1毫秒内完成。

我可以想到一些可能会影响您的性能和指标的可能性

持久连接和连接池/缓存(假设已启用)可能会加快后续查询,因为不需要假定TCP的往返连接设置和/或假定HTTPS或SSH的SSL握手

性能差异的数量级确实表明可能存在超过网络延迟的情况,这就提出了一个问题:您真的确定所有服务器请求都在1ms内完成,包括前几个请求吗?从何时到何时,您实际上是从进入rest层开始计时,还是从http服务器日志或

如果前几个缓慢的请求恰好也是自服务器启动以来对服务器的第一个请求,那么可能会发生一些额外的对象实例化/数据加载,从而延迟服务器的响应能力

这不太可能,但如果涉及任何代理,网络上的某个地方可能会发生缓存。通过比较服务器记录的请求数与实际发出的请求数,可以很容易地确定这一点


你说服务器响应速度快,所以你看到的时间是由于网络。如果以后的请求速度更快,您可能会观察到某种缓存效果。对于您认为在数据检查中看到的其他模式,如果它们是统计相关的,或者只是随机波动。我也不认为实际响应是缓存的,但例如DNS查找数据可以缓存。谢谢!回答以下问题:1。我们将进一步研究这一问题。可能的罪犯。2.是的,非常确定-度量是应用程序内的总处理时间。不是来自http服务器日志。3.每次都要减速,而不仅仅是在启动后。4.没有代理。@Henry DNS查找最多只需要100毫秒。肯定不会对1000毫秒的延迟负责吗?