java - Heroku 时间与本地时间 : too much difference

标签 java performance heroku optimization client-server

当在本地运行 spring boot 应用程序时,我可以看到服务器和客户端之间的时间是:

2018-04-08 19:13:26.030  INFO 20348 --- [nio-9191-exec-4] c.pmdcodereview.algo.MetadataLoginUtil   : Total Time Taken 9346
2018-04-08 19:13:26.035  INFO 20348 --- [nio-9191-exec-4] c.p.controller.PMDController             : Total Time Taken from PMDController 4

但是一旦我在heroku中托管应用程序,这就会更改为:

2018-04-08T14:09:28.807136+00:00 app[web.1]: 2018-04-08 14:09:28.806  INFO 4 --- [o-38031-exec-10] c.pmdcodereview.algo.MetadataLoginUtil   : Total Time Taken 77740
2018-04-08T14:09:28.846032+00:00 app[web.1]: 2018-04-08 14:09:28.845  INFO 4 --- [o-38031-exec-10] c.p.controller.PMDController             : Total Time Taken from PMDController 38

这怎么可能,我尝试在 ngrok 中托管我的应用程序,看看将我的应用程序暴露到互联网是否可能与 heroku 类似,但即使 ngrok 也显示:

 2018-04-08 19:07:10.931  INFO 20348 --- [nio-9191-exec-6] c.pmdcodereview.algo.MetadataLoginUtil   : Total Time Taken 9487
 2018-04-08 19:07:10.936  INFO 20348 --- [nio-9191-exec-6] c.p.controller.PMDController             : Total Time Taken from PMDController 5

我该如何处理这个问题? 我已经尝试了服务器端的所有可能的优化来快速响应客户端,但在heroku中仍然失败? 我在heroku中使用免费的dyno。

最佳答案

Free Heroku dynos使用共享 CPU,这意味着 Heroku dyno 上的 CPU 密集进程可能会比昂贵的笔记本电脑慢。

另一个常见原因(尽管可能不是在本例中)是 Heroku 会将空闲的 Free dyno 置于 sleep 状态,这意味着它们必须支付下一个请求的启动开销。

关于java - Heroku 时间与本地时间 : too much difference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49718837/

相关文章:

java - 使用 loopj : "Trust anchor for certification path not found."` 时出错

java - 引用错误: Month is not defined

php - 如何从大量数据创建数组?

performance - JMeter 理解升级

java - Play2Torial + Play 2.0.3 + Heroku + Postgresql -- 无法构建推送

java - JSON 格式日志未翻译为西里尔文

c# - 对于新的 .net 核心应用程序,我应该在 protobuf-net 和 google.protobuf 之间使用什么 NuGet 包?

heroku create 不应将远程命名为 "heroku"

ruby-on-rails - Heroku on Rails - 无效的 DATABASE_URL

java - 检查可编辑的 jcombobox