Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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 JS:内存泄漏与内存膨胀_Javascript - Fatal编程技术网

Javascript JS:内存泄漏与内存膨胀

Javascript JS:内存泄漏与内存膨胀,javascript,Javascript,我遇到了两种定义:内存泄漏和内存膨胀。 链接此处: 老实说,我想找出两者的区别。我是否正确地理解了主要区别在于记忆在时间中增长的速度。如果这一增长非常急剧,那么它就是内存膨胀,否则就是内存泄漏。但两者都有一个问题:GC不能释放未使用的内存?我认为内存泄漏是释放内存的问题,即不清理指针。我认为,由于垃圾收集器处理指针,js代码中不会出现真正的内存泄漏 内存膨胀是指应用程序本身的内存管理较差。例如,从不刷新缓存、加载不必要的内容、从不从内存中卸载内容等。据我了解,内存泄漏和内存膨胀都是敏感问题。内存

我遇到了两种定义:内存泄漏和内存膨胀。 链接此处:
老实说,我想找出两者的区别。我是否正确地理解了主要区别在于记忆在时间中增长的速度。如果这一增长非常急剧,那么它就是内存膨胀,否则就是内存泄漏。但两者都有一个问题:GC不能释放未使用的内存?

我认为内存泄漏是释放内存的问题,即不清理指针。我认为,由于垃圾收集器处理指针,js代码中不会出现真正的内存泄漏


内存膨胀是指应用程序本身的内存管理较差。例如,从不刷新缓存、加载不必要的内容、从不从内存中卸载内容等。

据我了解,内存泄漏和内存膨胀都是敏感问题。内存膨胀和内存泄漏之间的基本区别是,内存膨胀会急剧占用(突然增加)内存,而内存泄漏是一个缓慢且持续的内存占用过程

内存泄漏和内存膨胀的图示为,


看看这个链接。我希望这会很清楚。

是的,JS中可能存在内存泄漏。GC只是意味着您不能(或:不必)显式释放内存,但您仍然需要清理对不再使用的对象的引用。@EriksKlotins对我来说,从不刷新缓存更像是内存泄漏,因为它会慢慢增加内存使用量。但乍一看,我认为内存膨胀不会导致GC无法重新分配未使用的内存。。我认为,这只是当我们使用的内存超过了它的必要性。。。但是无论如何GC可以在以后释放这个内存。例如,它对移动设备至关重要…@Vladimitopolev正确。不断增长的缓存大小是内存泄漏,使用太大的缓存是内存膨胀。@Bergi我还是有点困惑。从
的文章中可以很容易地定义内存泄漏。如果一个站点正在逐渐使用越来越多的内存,那么你就有了漏洞。但内存膨胀更难确定和<<代码>内存膨胀可以很快地破坏站点,它比内存泄漏更容易追踪根本原因。什么地方是真的?@ VLADIMIRTOPOLEV,我认为第一个说更难决定什么时候考虑内存使用过度,也就是说区分“OK”和“这是内存膨胀问题”。但是,一旦你说你有问题,内存膨胀的原因就更容易确定。你在那页上找到的两个定义是什么?@Bergi,我找到了。检查它是否清晰,或者您需要更多的澄清