【发布时间】:2013-06-25 22:08:37
【问题描述】:
我只是想知道函数对象的开销如何。
在 OOP 设计模型中,您可以生成很多对象,每个对象都有自己的私有函数,但如果您有 10,000 多个,我认为这些私有函数对象会产生大量开销。
我想知道是否存在将这些函数移动到实用程序类或外部管理器以节省这些函数对象占用的内存的情况。
【问题讨论】:
-
js引擎可以回收相同的函数对象,所以用户态的10000个function vars实际上可以是1个函数和10000个指针...
-
您打算使用实用程序类吗?它会占用更多内存……无论如何,这 a) 取决于引擎,b) 除非您看到它成为问题,否则可能不必担心。
-
我的猜测是解释器对此进行了相当好的优化,但我确信它可能会写出糟糕的代码。有没有办法审计 JS 内存使用情况?
-
@landons: chrome 在开发工具中有一个任务管理器 + 配置文件 + 时间线来观察 JS ram 的使用情况。
-
@dandavis:您能否提供一个指向允许回收完整功能对象的规范的指针?这将使
x = function(){...}; x.foo = [];之类的东西成为禁忌,ECMA 文档对我来说就像加密文件一样可读。