内存被分配

时间:2011-09-08 14:06:24

标签: javascript memory memory-management

通过使用Chrome开发工具,我发现正在分配数组和对象。我查看了代码中的[]{}new。但没有。我检查了创建新[]{}new的函数,并查看了这些函数的使用位置,并且我已经学会了不使用它们。那么,如何分配内存呢?

对我来说这是一个问题,因为每次GC启动时,它都会阻止主循环并且动画变得不一致。

1 个答案:

答案 0 :(得分:4)

过分担心内存分配是徒劳的。内存将分配给所有内容,变量,数组,对象等。没有使用变量或对象,你可以用javascript做很多事情,但同样,内存的分配实际上并不是javascript的域脚本即可。无论如何,任何和所有的JavaScript都会使用一定程度的内存。实际上,我会说如果你“学会避免使用”对象和数组,那么你就会被误导或正在学习错误的教训。

避免循环引用,避免过多的内存消耗每个范围,以及通常避免使用紧密循环和其他不良做法锁定浏览器线程更为重要。例如,在for循环中,请避免重新计算for声明中的限制:for (var x = 1; x < myString.length; x++)应为var max = myString.length; for(var x = 1; x < max; x++)。即使是这样的优化(在大多数情况下, - 优化)对于javascript开发人员来说也不是严重,因为浏览器正在处理整体内存分配/消耗以及垃圾回收超出范围的参考资料。

有关避免泄漏的实践做法的详细信息,请查看以下文章:http://www.javascriptkit.com/javatutors/closuresleak/index.shtml(或其他类似文章)。否则,只要你没有泄漏内存,就会期望任何脚本都会分配/使用一定程度的内存;这是不可避免的。考虑到现代PC具有千兆字节的可用内存,您的脚本千字节甚至兆字节的内存使用都没有太大影响 - 这就是什么记忆就在那里,使用它。