Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RubyonRails、mongodb和jquery中的应用程序CPU使用量过多_Javascript_Ruby On Rails_Mongodb_Jquery - Fatal编程技术网

Javascript RubyonRails、mongodb和jquery中的应用程序CPU使用量过多

Javascript RubyonRails、mongodb和jquery中的应用程序CPU使用量过多,javascript,ruby-on-rails,mongodb,jquery,Javascript,Ruby On Rails,Mongodb,Jquery,这更多的是一个架构问题,而不是技术问题。我有一个应用程序,其结构如下。(假设出于安全原因而更改) 存储电影文档的集合,其中包含许多字段,如名称、发布日期、导演等(每个json大约有10个字段,集合中总共有1000个文档) 我从movies集合的每个文档中获取docId,并创建一个单独的集合来存储国家、一个图像(以db中的base64编码字符串存储)和一个URL等 现在,在页面加载方面,我尝试了以下体系结构 一个ajax调用,用于从其集合中加载所有电影(此调用涉及从mongo读取数据和多个gsub

这更多的是一个架构问题,而不是技术问题。我有一个应用程序,其结构如下。(假设出于安全原因而更改)

  • 存储电影文档的集合,其中包含许多字段,如名称、发布日期、导演等(每个json大约有10个字段,集合中总共有1000个文档)

  • 我从movies集合的每个文档中获取docId,并创建一个单独的集合来存储国家、一个图像(以db中的base64编码字符串存储)和一个URL等

  • 现在,在页面加载方面,我尝试了以下体系结构

  • 一个ajax调用,用于从其集合中加载所有电影(此调用涉及从mongo读取数据和多个gsub操作,以创建要在页面上呈现的html结构)。此调用完成后,在一个for循环中激发ajax调用,该循环会为电影特定文档带来国家(同样涉及多个gsub并显示图像)。此方法占用大量CPU,因此需要更改

  • 方法2:打电话带来所有电影和显示数据,然后一批十个国家带来

  • 方法3:结合号召,将电影和国家放在一起,拍摄5部电影。在上一次通话结束时启动此功能


  • 我使用的是ruby 1.8.7,所以没有太多线程使用。这三种方法的cpu使用率几乎相同(>55%),我无法改变创建数据库的方式。但是我需要改进我的页面的性能。请给我同样的建议。

    查询需要很多时间吗?你在使用索引吗?没有索引,查询不会占用那么多时间。对于长度为200kb的内容,ajax请求在大约600ms内完成。这是否正常。我的网络连接一般。你是在使用与浏览器在同一台机器上运行的应用程序来测量CPU,还是在不同的机器上运行这些应用程序?您确实需要更清楚地分解度量配置文件,即:MongoDB服务器的时间/CPU与Ruby代码与浏览器呈现。对于MongoDB调优,您一定要考虑通过和使用添加适当的索引。诸如New Relic或App Dynamics之类的应用程序性能监视解决方案也可以让您快速了解应用程序的性能配置文件。看起来像是后面关于同一主题的问题的重复:。