gpt4 book ai didi

测试 "Class"的不同仿真的 Javascript 基准

转载 作者:行者123 更新时间:2023-11-30 10:44:24 25 4
gpt4 key购买 nike

我读过这样的文章:

  • 使用 prototype 将是最快的,因为声明的函数是共享的。 this article 中解释了更多详细信息与使用“即兴创作”相比,利用 JS native 原型(prototype)将提高性能。

  • 闭包应 perform worse因为它的每次创建都返回一组函数和变量的单独副本。

  • 对象(函数)是一种闭包,但带有 this。具有访问控制(公共(public)/私有(private))。他们是supposed to be better than closures .

  • 对象字面量(看起来像 JSON 的字面量)就像对象一样,但没有隐私感。它们与 JAVA 中的静态方法相当。我没有文章可以引用,我只是为了比较而收录了这个。

我是testing a simple comparison of the 4 methods using jsperf在我继续我的项目之前构建“类”,我期待原型(prototype)获胜。然而,闭包打败了他们。怎么会?这里有一些让步吗?看不见的偏见?

我可能不是 JS 新手,但我对这些优化概念完全陌生,请耐心等待。我还在研究这些东西。

最佳答案

并不是说“闭包应该表现更差”。闭包导致每个对象都获得自己的函数副本。但只要您有足够的内存,就不会导致任何真正的性能问题。如果有的话,闭包甚至可能更快,因为它们不必沿着原型(prototype)链向上寻找属性,它们总是在对象的第一层。

闭包真正的缺点是内存使用,而不是速度。当创建大量对象时,它可能会成为一个问题。

您还必须考虑相关的运行时。不同的 JavaScript 引擎会针对不同的情况进行优化,具体取决于他们认为最重要的内容。

关于测试 "Class"的不同仿真的 Javascript 基准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9270665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com