我目前正在調查我們的一個性能測試中的一個奇怪的行爲: 在這個測試中,我執行了一個相當複雜的計算幾次。該測試顯示出一些漸進式行爲。第一次運行是最昂貴的運行之後,大約100次運行執行時間爲1000-5000ns,然後降至10-40ns。由於測試使用隨機生成的值,因此我修改了測試以生成一次數據,然後使用完全相同的數據執行測試。Java VM的加速時間?
爲了消除類加載和其他問題,我甚至執行了一次運行,並添加了一秒的睡眠,以使任何背景的東西有機會完成加載類和其他的東西。
我期望在整個運行過程中有相似的執行時間,並且可以理解由於垃圾回收踢入......而導致性能下降,但看到運行速度越來越快,似乎相當奇怪。
我無法真正解釋這種行爲。虛擬機中是否可以進行某種優化?
克里斯
即時編譯? –