Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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 如何在长寿命的单页应用程序和多页应用程序中获得类似的垃圾收集行为?_Javascript_Memory Management_Memory Leaks_Garbage Collection_Single Page Application - Fatal编程技术网

Javascript 如何在长寿命的单页应用程序和多页应用程序中获得类似的垃圾收集行为?

Javascript 如何在长寿命的单页应用程序和多页应用程序中获得类似的垃圾收集行为?,javascript,memory-management,memory-leaks,garbage-collection,single-page-application,Javascript,Memory Management,Memory Leaks,Garbage Collection,Single Page Application,我浏览了web和堆栈溢出,几乎认为SPAs并没有充分利用当前的GC算法 我们的团队注意在状态转换时销毁无用的对象,解除绑定,删除侦听器,以及我们在internet上发现的所有可能性。但它在一个长寿的SPA上仍然存在一种内存泄漏(持续使用1~2次)。可以看到下图,该图表示SPA导航2小时内的内存使用情况: 这是一个在2小时内从40MB跃升到700MB的过程。显然,有许多特性,如地图和图形,可以证明内存消耗是合理的,但是,对于未使用的内存 除了上面列出的这一点之外,还有更多的东西可以改进SPA上的

我浏览了web和堆栈溢出,几乎认为SPAs并没有充分利用当前的GC算法

我们的团队注意在状态转换时销毁无用的对象,解除绑定,删除侦听器,以及我们在internet上发现的所有可能性。但它在一个长寿的SPA上仍然存在一种内存泄漏(持续使用1~2次)。可以看到下图,该图表示SPA导航2小时内的内存使用情况:

这是一个在2小时内从40MB跃升到700MB的过程。显然,有许多特性,如地图和图形,可以证明内存消耗是合理的,但是,对于未使用的内存

除了上面列出的这一点之外,还有更多的东西可以改进SPA上的GC吗

我们知道GC不能由客户端(javascript)控制,尽管有一些事件触发了这种情况。一些用户操作,如:导航、页面交换、关闭选项卡等,在SPA中不会发生。
如何在SPA中使用内存管理获得令人满意的结果?

您是否尝试过使用Chrome Developer工具进行评测,尤其是查看何时请求内存


您正在使用哪个SPA框架:Angular(1、2、4)、vue、ember、react、自制…?

是的,我使用了。感谢您的awnser,但问题不在于如何找出漏洞,而在于如何将类似的GC工作流导入SPA(如有可能)中的多页应用程序中。在这种情况下,使用AngularJS 1和2。但其他框架也是如此。我认为这是SPA的一个普遍问题。