HashMap使用下面的数组,因此它永远不会比正确使用数组快。
Random.nextInt()比测试的速度慢很多倍,即使使用数组测试数组也会使结果产生偏差。
数组基准测试之所以如此缓慢的原因是由于equals比较,而不是数组访问本身。
HashTable通常比
HashMap它要慢得多,因为它做很多相同的事情,但是也是同步的。
微基准测试的一个常见问题是JIT,它非常擅长删除不执行任何操作的代码。如果您不小心,则将仅测试您是否对JIT感到困惑,以至于JIT无法执行您的代码不会执行任何操作。
这是您可以编写性能优于C
系统的微基准的原因之一。这是因为Java是一种更简单的语言,更易于推理,因此可以检测无用的代码。这可能会导致测试表明Java的“没什么用”比C
快得多;)



