我注意到,随着标签保持打开状态,我们的网站越来越慢。使用Chrome的任务管理器,我缩小了问题范围:
每次调用以下代码行时,内存使用量都会增加:
$jquery.post(url, params);
我在1秒计时器上实现了这段代码,几分钟内内存使用量从30MB变为250MB。只注释掉这一行代码可以解决这个问题。请注意,我只注释掉这一行;我仍然生成URL和参数。所以问题肯定与这行代码有关。每次运行大约2MB的内存消耗。
显然,有一些memleak。我希望它与结果的缓存或JSON反序列化有关(JSON结果可能相当大)。任何人都可以提供解决方案或解决方案吗?即使仅仅强制进行一些垃圾收集也是可以接受的。 FWIW,内存使用量偶尔会减少,但不是很多(垃圾收集?)。我刚看到它从300MB下降到250MB,但现在再次上升。
更具体地说,代码看起来像这样......
...
init: function()
{
setInterval(function(){ SManager.updateAll(); }, 1000);
},
updateAll: function()
{
var url = SManager.SERVER_URL;
var params = new Object();
params.version = 1;
params.platform = 'web';
$jquery.post(url, params);
},
谢谢!
答案 0 :(得分:1)
使用分析工具查找未进行垃圾回收的大对象。例如。在Chrome F12 / Profiling / Heap trace中。
答案 1 :(得分:1)
与stackoverflow上的解决方案类似的问题
我相信您problem
的解决方案可以在这里找到: