Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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
Chrome/Javascript内存泄漏,不会';t在调试模式下显示_Javascript_Angularjs_Memory Leaks - Fatal编程技术网

Chrome/Javascript内存泄漏,不会';t在调试模式下显示

Chrome/Javascript内存泄漏,不会';t在调试模式下显示,javascript,angularjs,memory-leaks,Javascript,Angularjs,Memory Leaks,我正在开发一个大型AngularJS应用程序,当我们在不同的控制器之间来回切换时,它会出现内存泄漏。更准确地说,我们在屏幕左侧有一个菜单,菜单选项$route To different.htmlpartials(这反过来又实例化了不同的控制器) 举个例子,假设菜单选项A指向实例化ControllerA的partialA.html,菜单选项B指向实例化ControllerB的partialB.html。 当用户在菜单选项A和B之间来回点击(依次构造和解构A和B控制器)时,我们可以从Chrome的“

我正在开发一个大型AngularJS应用程序,当我们在不同的控制器之间来回切换时,它会出现内存泄漏。更准确地说,我们在屏幕左侧有一个菜单,菜单选项$route To different
.html
partials(这反过来又实例化了不同的控制器)

举个例子,假设菜单选项A指向实例化ControllerA的partialA.html,菜单选项B指向实例化ControllerB的partialB.html。 当用户在菜单选项A和B之间来回点击(依次构造和解构A和B控制器)时,我们可以从Chrome的“配置文件/快照”中看到内存使用在不断增加

按照互联网上各种指南的建议,我做了同样的测试,但这一次,我用

bash$ google-chrome --js-flags="--noopt --nouse-ic --nocrankshaft"
…内存泄漏现在消失了-内存使用保持不变

如果我的理解是正确的,这意味着泄漏不是因为我们的代码,而是因为从Chrome的V8引擎泄漏了一些优化相关资源

现在,我希望我能对我的老板这么说,但是很明显,当Chrome的“黑窗口”因为堆耗尽而出现时,我的假设是这是我的代码的错

我能做什么?有什么建议吗


编辑:我还使用Firefox进行了检查。在菜单选项A和B之间往返10次之后,Firefox的“about:memory”窗口显示,在“Free memory/GC”、“Free memory/Minimize memory usage”和“Measure”之后,js main runtime GC heap committed和js main runtime保持基本不变。因此,它肯定与Chrome相关(更准确地说,与V8相关)。

您所描述的问题正在解决中。看来您唯一的选择是通过主演该问题来通知Chromium团队您正遭受此问题的困扰,如果可以的话,通过评论提供有关该问题的更多信息。@stevuu:我明白了。。。不幸的是,我不能真正提交关于这个问题的bug报告,因为演示它需要大量的代码(控制器包含网格,其中填充了JBOSS内部运行的异步web服务,等等)。至少我现在有一个关于这个问题的链接-谢谢。