我想对何时(忽略可用内存空间)存储比较结果而不是重新计算它是有意义的有一个深刻的理解。证明存储所产生的时间成本合理的临界点是什么?是 2 次、3 次还是 4 次比较?更多的?
例如,在这种特殊情况下,哪个选项(通常)在速度方面表现更好?
选项1:
int result = id.compareTo(node.id);
return result > 0 ? 1 : result < 0 ? -1 : 0;
选项 2:
return id.compareTo(node.id) > 0 ? 1 : id.compareTo(node.id) < 0 ? -1 : 0;
我试图自己分析这两个选项以回答我自己的问题,但我对这种性能测试没有太多经验,因此,我宁愿从有更多经验的人那里得到更明确的答案更好地掌握所涉及的理论要素。
我知道这没什么大不了的,而且大多数时候差异可以忽略不计。但是,我是一个完美主义者,我真的很想解决这个特殊的问题,这样我就可以继续我的生活了,哈哈。
此外,我认为对于我将来可能遇到的类似情况,我认为答案可能会很有启发性,其中差异可能非常显着(例如,当比较或内存分配的成本无法产生或其他情况时)复杂到足以引起有关性能的真正问题)。
答案应该与使用 Java 而不是其他语言编程相关,请。
我知道我已经提到过几次了,但是请仅将答案集中在速度差异上!我很清楚在编写代码时可以而且应该考虑许多其他因素,但在这里我只想要一个直截了当的论点,即 FASTER。