【问题标题】:Will warming up speed up sending http request in Java?预热会加快在 Java 中发送 http 请求的速度吗?
【发布时间】:2020-02-15 20:37:15
【问题描述】:

我想知道通过多次发送无害的请求来预热代码是否会减少我们在 Java 中接收响应所需的时间?

【问题讨论】:

  • 嗨,David,您能说明一下您使用的是什么类型的请求(HTTP、FTP)和什么框架(如果有的话)吗?如果您可以使用更多背景信息来扩展您的问题,因为不同的工具做的不同。
  • 当然不是。时间以网络和服务器处理为主。
  • 您好 Stefan,感谢您的回复!我尝试使用 retrofit2 包发送一个 post http 请求
  • 热身通常与类加载有关。因此,如果您热身,也许最初的 1 或 2 个呼叫会更快。但是所有后续的网络调用都没有效果。

标签: java httprequest warm-up


【解决方案1】:

您的假设是正确的,但我会推荐其他性能改进技术。

HTTPS 调用

创建新连接很耗时,但仅在第一次(握手期间)就需要很多时间,随后的请求与 HTTP 类似。因此,在真正的连接之前保持连接或发送虚拟请求确实会改善 first 请求。

Java 代码

Java 应用程序可能有很多资源不会立即加载(读取属性文件、静态初始化块...),并且伪造将加载这些资源的请求将再次有帮助,对于 first 请求。

其他

缓存很常见,因此当您请求数据时,可能会对其进行缓存以供进一步访问。但是您需要根据您的具体情况进行检查。

【讨论】:

  • 好吧,我列举了一些可能性,不一定推荐你使用它们 :) 我会尝试改进缓慢的实际代码
猜你喜欢
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 2011-03-20
  • 2014-03-12
相关资源
最近更新 更多