隨着時間的推移,Sun的JVM和JIT變得非常聰明。過去常常被認爲是必要的微觀優化的東西不再需要,因爲它會得到照顧。智能JVM和JIT微優化
例如,過去應該將所有可能的類標記爲final,以便JVM儘可能多地嵌入代碼。但是現在,JIT知道你的類是否是最終的,基於哪些類在運行時被加載,並且如果你加載一個類來使原始類不能最終結束,那麼它將取消內聯方法並將其標記爲最後。
JVM或JIT爲您做了哪些其他智能微優化?
編輯:我做了這個社區wiki;我想收集這些隨着時間的推移。
隨着時間的推移,Sun的JVM和JIT變得非常聰明。過去常常被認爲是必要的微觀優化的東西不再需要,因爲它會得到照顧。智能JVM和JIT微優化
例如,過去應該將所有可能的類標記爲final,以便JVM儘可能多地嵌入代碼。但是現在,JIT知道你的類是否是最終的,基於哪些類在運行時被加載,並且如果你加載一個類來使原始類不能最終結束,那麼它將取消內聯方法並將其標記爲最後。
JVM或JIT爲您做了哪些其他智能微優化?
編輯:我做了這個社區wiki;我想收集這些隨着時間的推移。
這是令人印象深刻的。所有這些都是你在C++中做的事情(當然與Java相同)。請記住,早期版本的Java由於沒有這些東西而開始了「緩慢」的聲譽,並且隨着時間的推移,我們不斷改進顯着。這仍然是一個很大的研究領域。
Java是在更智能的內聯,因爲它可以
好的java可能很聰明,但它仍然使用很多資源 – Roch 2009-11-25 13:36:46
@mnml它比流行的意見是少的。創建一個對象,我認爲他們把它歸結爲2或3條指令。是的,像C++一樣速度通常更快,但「資源」不僅僅是CPU和內存;這也是人潮。硬件很便宜,人們很貴。從長遠來看,Java通常會在性能上勝出,因爲它的JIT非常驚人,並且會比大多數C++應用程序所夢想的更優化應用程序。 – 2010-04-19 20:07:18
@亞歷希望我可以給你代表指出人是資源。儘可能相信這一點。作爲一名員工,你的時間往往比公司花費更多的錢,而不是說硬盤中額外增加了1 TB的數據,或者在老式的網絡服務器中使用更好的CPU。 – 2011-01-28 18:51:21