我在使用 AWS 开发工具包时观察到以下行为。
测试场景一:
尝试使用 S3Client 作为单例按顺序(背靠背,无线程等待)调用从 S3 下载相同大小的多个文件。(内部使用 Http-core 4.3)
结果:第一次调用下载文档需要更多时间(5000 毫秒)。因为它涉及单例初始化等。其余的调用非常快(大约 100-200 毫秒)。
测试场景 2:
尝试在使用 S3Client 作为单例的调用之间按顺序从 S3 下载相同大小的多个文件(10 秒)。(内部使用 Http-core 4.3)
结果:第一次调用下载文档需要更多时间(5000 毫秒)。其余的调用不如场景 1 快(大约需要 800 - 1500 毫秒)。
有人可以建议背景发生了什么吗?这与http连接的设置有关吗?AWS SDK 在内部使用 apache httpcore 和 httpclient 库。