Heroku时间vs当地时间:差异太大

时间:2018-04-08 14:19:48

标签: 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。

1 个答案:

答案 0 :(得分:0)

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

另一个常见的原因(尽管可能不是这种情况)是Heroku会将闲置的自由动力进入睡眠状态,这意味着他们必须在下次请求时支付启动费用。