top_banner5.png logo_bwc4.png

测试排版


JavaScript如何工作:内存管理+如何处理4个常见的内存泄漏

几个星期前,我们开始了一系列旨在深入挖掘JavaScript及其实际工作原理的系列文章:我们认为通过了解JavaScript的构建块以及它们如何共同发挥作用,您将能够编写更好的代码和应用程​​序。ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

本系列的第一篇文章重点介绍了引擎,运行时和调用堆栈的概述。Thе 第二后仔细研究谷歌的V8 JavaScript引擎的内部零件,也提供了有关如何写出更好的JavaScript代码的一些提示。

在第三篇文章中,我们将讨论由于日常使用的编程语言日益成熟和复杂性(内存管理)日益增加而被开发人员忽视的另一个重要主题。我们还将提供一些关于如何处理JavaScript中的内存泄漏的提示,我们在SessionStack中遵循这些提示,因为我们需要确保SessionStack不会导致内存泄漏或者不会增加我们集成的Web应用程序的内存消耗。

概观

语言,如C,具有低级别的内存管理原语,如malloc()free()。开发人员使用这些原语来明确地从操作系统分配和释放内存。

同时,JavaScript在创建事物(对象,字符串等)时分配内存,并在不再使用时“自动”释放它,这个过程称为垃圾收集。这种看似“自动”的释放资源的本质是混乱的根源,并给JavaScript(和其他高级语言)开发人员提供了错误的印象,他们可以选择不关心内存管理。这是一个大错误。

即使使用高级语言,开发人员也应该了解内存管理(或至少是基础知识)。有时自动内存管理存在问题(例如垃圾收集器中的错误或实现限制等),开发人员必须了解这些问题才能正确处理它们(或找到合适的解决方法,并尽量减少折衷和代码债务)。

记忆生命周期撒大声地

无论您使用何种编程语言,内存生命周期几乎都是一样的:

湖南工业大学保卫处
2018-11-15