【问题标题】:high memory with huge object count具有大量对象数的高内存
【发布时间】:2014-08-19 23:57:37
【问题描述】:

我有一个使用dojo、extjs5 和jquery 框架的xpage。它的一个页面包含大约 20 个网格,包括一些树网格。一些网格非常大(大约 50 列)。由于网格是相互关联的,因此它们会根据左窗格上的用户选择隐藏/显示在单页中。

我在 IE11 开发者工具中检查了内存使用情况。它开始时大约 300MB,但很快增长到近 1GB。加载完所有内容后,它稳定在 364MB 左右,但当我拍摄快照时,它一直在爬升并停留在那里。另一个主要担心是对象总数约为 230000。我不知道从哪里开始。甚至不确定是否有可能解决这个问题。我附上了一些内存使用的截图。

感谢任何专家的建议来解决这个问题,在此先感谢

【问题讨论】:

  • 愚蠢的问题,但由于浏览器必须处理大量数据,您确定这不“正常”吗?
  • 这是一个浏览器问题。简而言之:如果你想得大,那就大了。使用今天的硬件,这应该不是问题。如果是您需要将其拆分 - 我相信您的用户会讨厌它
  • 如果不正常,您应该检查消耗内存的对象。今天的 Javascript 引擎非常高效,并且会占用您机器的内存。在较低内存的机器上尝试相同的页面,即在 Virtualbox 中,看看你是否得到相同的页面结果/速度
  • 谢谢大家。我能够移动一些东西,比如将一些商店加载到不同的事件中,比如点击特定的导航链接。我还尝试了不同的浏览器和不同的机器,当在 chrome 和具有更高 cpu 的机器上测试时,它产生了更好的结果。

标签: jquery internet-explorer google-chrome extjs xpages


【解决方案1】:

如果不正常,您应该检查消耗内存的对象。使用 Google Chrome 网络开发者工具中的内存分析选项来检查。

查看这些链接以了解是否有问题

Finding JavaScript memory leaks with Chrome

https://developer.chrome.com/devtools/docs/javascript-memory-profiling

https://developer.chrome.com/devtools/docs/heap-profiling

当今的 Javascript 引擎非常高效,并且会占用您机器的内存。 在较低内存的机器上尝试相同的页面,即在 Virtualbox 中,看看你是否得到相同的页面结果/速度

【讨论】:

  • 感谢 Fredrik Norling。当我尝试使用另一台具有更好 cpu 的机器时,它确实消耗了更少的内存,我不太确定是否有任何链接。另一件事是当我在 IE 内存跳转中使用分析时,如果我不这样做,它就会保持正常。
【解决方案2】:

我希望在页面呈现时使用更多内存(接近 1gb),然后在浏览器释放工作内存/堆栈等时放松。

我还猜测,如果您使用 3 个框架(dojo、jquery、extjs5),可能会生成大量对象。 230,000 看起来很多,但我敢说即使是一个简单的页面也会产生很多。或许可以尝试加载和分析一个相当简单的网页,以比较一下“不显眼”的网页是什么样的?

但是,随着时间的推移,它会上升这一事实可能表明存在内存泄漏。

当你不理会它时页面是否“做事”(可能是一次操作/心跳?)如果是这种情况,也许这是导致缓慢消耗内存的原因。

如果你确定不是这种情况,也许可以在不同的浏览器中尝试同样的事情,看看它们是否会慢慢吃掉内存?如果在其他浏览器中不是问题,则它暗示了 IE 特定的内存泄漏,正如村里的长者所证实的那样,这并非闻所未闻。

【讨论】:

  • 谢谢。是的,使用 3 个框架会导致很多对象。使用 3 个不同的框架可能不是最好的设计,但在这些框架中的每一个上几乎没有非常重要的功能会导致这个决定。但这是我们目前正在努力的一个领域,看看我们是否可以至少消除创建重复对象(例如为相同的数据创建 extjs 和 dojo 存储)。
  • 是的,这会有所帮助。我们有一个类似的情况,有时我们最终会使用 jquery 和 dojo——从历史上看,jquery 是最受欢迎的,但相对较新的平台默认使用 dojo。啊!我想速度/内存使用没有“神奇的解决方案”,所以它归结为通常使事情更有效率。话虽如此,如果有人发现它运行缓慢等,这只是一个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
  • 2018-07-09
  • 2020-03-09
  • 1970-01-01
  • 2015-09-30
  • 1970-01-01
  • 2012-05-22
相关资源
最近更新 更多