我在 Heroku(免费层)和 MongoHQ 上使用 Meteor。我的应用程序现在非常简单,它从一个集合中加载 3-4 个条目,但是当我将它部署到 Heroku 时,我看到了荒谬的加载时间(1-2 分钟)。HTML 会立即呈现。当我部署到 Meteor.com 的免费服务器时,加载时间要短得多,但对于 4 条小数据仍然需要 15 秒左右。当我在本地部署时,我没有看到这一点,应用程序立即从数据库中提取数据。
值得注意的是,我认为这不是 Heroku 的“闲置”问题。即使我已经有一个刚刚打开应用程序的浏览器窗口,如果我使用其他浏览器并重试,我仍然会得到 1-2 分钟的加载时间。但是,一旦加载了数据,性能就会恢复正常,我可以毫无问题地进行读写。
我错过了什么?我在控制台中没有看到任何错误,mongo 在日志中显示了几个查询,并显示它正在快速响应 4 个文档,但显然在中间的某个地方出现了交通堵塞。非常感谢您对此的任何帮助,如果我无法通过这个 Meteor 现在对我的需求毫无用处。
更新:我一直在 Firebug 中密切关注它,看起来性能在很大程度上不一致。有时简单的刷新需要 1 分钟,有时需要 10 秒。但我注意到的是,当它很慢时,它会获取 sockjs/info 文件,然后就在 sockjs POST 中止(有时多次)之后。快速运行时,POST 和后续 POST 运行顺畅
Slow:
GET http://pocleaderboard.herokuapp.com/sockjs/info 200 OK 22ms
POST http://pocleaderboard.herokuapp.com/sockjs/029/su0d77fb/xhr Aborted
GET http://pocleaderboard.herokuapp.com/sockjs/info 200 OK 27ms
POST http://pocleaderboard.herokuapp.com/sockjs/132/uljqusxd/xhr Aborted
GET http://pocleaderboard.herokuapp.com/sockjs/info 200 OK 28ms
POST http://pocleaderboard.herokuapp.com/sockjs/154/kcbr6a5p/xhr Aborted
Fast(er):
GET http://pocleaderboard.herokuapp.com/sockjs/info 200 OK 1.08s
POST http://pocleaderboard.herokuapp.com/sockjs/755/xiggb555/xhr 200 OK 1.02s