通常这双比较结果排序时,你做的事:优化的JavaScript排序
if (x < y) return -1
else if (x > y) return 1
else return 0
或
return ((x > y) ? 1 : ((x < y)) ? -1 : 0))
两个比较什么似乎只能与一个来完成。在汇编中,你所要做的就是将两者都减去一个寄存器,检查是否为负数,检查是否为零。如果我们要减去的话,问题出现在javascript中:
var sub = (x - y);
return (sub == 0 ? 0 : ((sub < 0) ? -1 : 1))
这将会导致更多的代码被执行。
因此,一些问题:
- 有简化或在JavaScript speedying这种方式?
- 像chrome这样的编译javascript解码器能优化这种比较吗?
- 其他语言怎么样?
请注意,这只是工作可靠,因为JavaScript是采用双打(好,我认为它的工作可靠,与双打,你不能太肯定)而相同的代码**不会**对用2s补码编码的整数正确工作! – Voo 2011-05-10 23:54:02