Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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_Node.js_Performance_Object - Fatal编程技术网

Javascript 如果冻结对象,应用程序会运行得更快吗?

Javascript 如果冻结对象,应用程序会运行得更快吗?,javascript,node.js,performance,object,Javascript,Node.js,Performance,Object,我的大多数对象/函数不会更改。如果我通过Object.freeze(Object)冻结大多数对象,应用程序会运行得更快吗?或者,冻结(和密封)会对不同浏览器的性能造成显著的影响,而不是增加。只需看看jsperf 编辑:“这是v8的相关问题。如果你详细阅读了这个bug,它会认为一些基准测试测量的东西是错误的,并且Object.freeze()现在已经在Chrome中修复,所以不像以前那么慢了Object.seal()显然尚未修复。在Windows NT 6.3 64位上使用Chrome 36.0.

我的大多数对象/函数不会更改。如果我通过
Object.freeze(Object)
冻结大多数对象,应用程序会运行得更快吗?或者,冻结(和密封)会对不同浏览器的性能造成显著的影响,而不是增加。只需看看jsperf


编辑:“这是v8的相关问题。

如果你详细阅读了这个bug,它会认为一些基准测试测量的东西是错误的,并且
Object.freeze()
现在已经在Chrome中修复,所以不像以前那么慢了
Object.seal()
显然尚未修复。在Windows NT 6.3 64位上使用Chrome 36.0.1941.0 32位,三者之间似乎没有什么不同。我将直接在我的Nodejs服务器上测试它。好的,使用Nodejs,冻结对象似乎比我的计算机上的常规对象慢30-40%。@RainingChain-请记住,新的节点版本偶尔会包含较新的v8,因此在某个时候,您会看到冻结对象和正常对象之间的节点版本趋同,这与我们在Chrome中看到的情况相同。在v8的3.19.4版中,他们显然“使Object.freeze变快”。您可以使用
process.versions.v8
获取节点的v8版本。节点V0.11远远超出了这一范围,但似乎0.10.25是3.14.5,并进行了一些后端口修复。这里期待着一个稳定的新的主要节点很快发布。Chrome现在稍微快一点(按照的顺序,我最近创建了一个node js库,该库使用嵌套函数使对象只读。因此,访问属性的速度甚至比普通的未冻结对象还要快。虽然与vanilla js一起使用看起来很难看,但值得一试。