![]() |
1
47
这就是我读到的,可以回答你的问题:“预增量(
|
![]() |
2
55
这是一个人造优化。据我所知,您正在保存1个操作码。如果你想用这种技术来优化你的代码,那么你就走错了。而且,大多数编译器/解释器无论如何都会为您优化这一点。(
reference 1
)。总之,我不担心。
但是
如果你真的很担心,你应该用
这是我刚刚做的快速而肮脏的基准测试
原始结果
删除最低和最高
平均数
注意这一切都结束了 一百万次迭代 结果在 九 平均毫秒数。考虑到JavaScript中的大多数迭代处理都是在更小的集合(例如,DOM容器)上完成的,所以并不是很好的优化。 |
![]() |
3
6
理论上,使用后增量运算符 可以 制作一个临时的。在实践中,javascript编译器足够聪明,可以避免这种情况,特别是在这种微不足道的情况下。 例如,让我们考虑一下示例代码:
在这种情况下,nodejs中的V8编译器将生成 确切地 相同的字节码(增量请参见操作码39-44):
当然,其他的javascript编译器/解释器 可以 否则,这是值得怀疑的。
最后一句话,尽管如此,我还是认为在可能的情况下使用预增量是一种最佳实践:因为我经常切换语言,所以我更喜欢使用正确的语法。
语义的
为了我想要的,而不是依靠编译器的智能。例如,现代的C编译器也不会有任何区别。但是在C++中,这会对重载产生重大影响。
|
![]() |
4
3
听起来像是过早的优化。当你的应用程序快完成时,检查瓶颈在哪里,并根据需要优化这些瓶颈。但是,如果您想要一个完整的循环性能指南,请查看以下内容: http://blogs.oracle.com/greimer/entry/best_way_to_code_a 但是你永远不知道什么时候会因为JS引擎的改进和浏览器之间的变化而过时。最好的选择是在问题出现之前不要担心。使您的代码清晰易读。 编辑:根据 this guy 前期与后期在统计上无显著差异。(pre可能更糟) |
![]() |
5
2
优化不是前后增量。它使用的是位“shift”和“and”运算符,而不是除法和mod。 还有缩小javascript以减小总大小的优化(但这不是运行时优化)。 |
![]() |
6
1
这可能是货物崇拜的程序。 当您为不存在任意运算符重载的语言使用合适的编译器/解释器时,这不会有什么不同。 这种优化对于C++来说是有意义的。
可以就地修改值,而
必须通过在引擎盖下做一些事情来创建一个副本
对于大型结构类型或在其'copy构造函数中进行大量计算的类型,这可能会很昂贵。 |
![]() |
7
1
Anatoliy的测试包括预增量测试函数中的后增量:( 以下是没有这种副作用的结果…
产量
这是一个很大的区别。 |
![]() |
8
0
刚在Firebug中测试过,发现后增量和前增量之间没有区别。也许这个优化其他平台? 以下是我的Firebug测试代码:
输出为:
|
![]() |
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 4 月前 |
![]() |
Alex · 在轻量级中同时解构和不解构变量 4 月前 |
![]() |
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 4 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 4 月前 |
![]() |
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 5 月前 |