我一般不是microbenchmarks的粉丝。但这个有一个非常有趣的结果。
http://ernestdelgado.com/archive/benchmark-on-the-floor/为什么Javascript的Math.floor是计算Javascript中最慢的地方?
它暗示Math.floor
是计算Javascript中最低层的方法。 ~~n
,n|n
,n&n
一切都比较快。
这似乎相当令人震惊,因为我期望在当今现代浏览器中实现Javascript的人会是一些相当聪明的人。
地板是否做了其他方法无法做到的重要事情?有没有什么理由使用它?
'~~ n','n | n'和'n&n'不会产生与Math.floor相同的结果。前三个只能返回32位整数。尝试'n = 50000000000.4'。 – kennytm 2010-03-26 21:00:12
在我的浏览器(FF 3.6.something)中,结果的速度都是相同的(大约“3”,无论如何)。在不同的浏览器上尝试它(小测试在底部提供),而不仅仅是以面值为结果。真的没有理由为什么它会明显变慢。 – 2010-03-26 21:02:31
实际上,他跑FF基准3.6表明'Math.floor'是最快的 – 2010-03-26 21:56:05