Java 的公開秘密
大家都知道Java會將原始碼編譯成類別檔然後交由JVM來執行。但是事實上JVM並非以直譯的方式來執行類別檔,至少在JDK1.2版之後,JVM的實做引入JIT編譯器。
透過JIT編譯器,Java的類別檔不是由JVM執行,而是將其再次編譯成為作業系統上的組合語言碼才執行。
這使得Java的效能整體而言比C++還要快,
這讓我相當訝異,Java在虛擬呼叫、物件創始等速度相當快,
C++則是在Control Flow的執行上略甚一籌。
.NET 的編譯器所編譯出來的MSIL檔就是一種類別檔,
只是微軟不想要這麼稱呼,不過.NET Runtime很聰明直接就採用JIT技術,
將不同語言所編譯出來的MSIL,再轉換成為目的作業系統的組合語言。
不論MSIL或是類別檔,現在看來應該都算是種中繼檔,
反正他們的功能只是再被編譯一次而已。 good........................ 有些高深,不太明白,再好好学习学习,谢谢楼主兄弟! 原來有雙重編譯
不再是以前直接從bytecode過來
謝謝分享 但是在圖形化介面上(swing)仍是算慢的,還是有改進空間囉 哦,这样,看的不是很明白,还需要学习啊,不过java整体上肯定是比较慢一点的啦,
谢谢楼主辅导,我还需慢慢的理解一下 真的很專業
可以多說一點
Thank you
Thank you for you share great,thanks for sharing 写的满专业的, 不过如果可以解释什么是JVM & JIT 会更好。 谢谢。 原來還可以用這個方法 謝謝大大交我們 學習中!
問個小問題:
變動式的網址後綴碼是否由JAVA所控制? 寫的滿好的...剛好最近在學習jsp 写的太简练了,好多术语不明白
知识面还是欠缺呀 我在这个领域还属于小白... 受教了~謝謝
可是再說多一點,再深入一點嗎? 在JDK1.2版之後,JVM的實做引入JIT編譯器將其再次編譯成為作業系統上的組合語言碼才執行,亦即JVM並非以直譯的方式來執行類別檔,難怪這使得Java的效能整體而言比C++還要快!且又不失原本之可攜性與相容性。 java的执行效率到底怎么样? 明白明白, 學會了! JVM 是 Java Virtual Machine,負責執行Java位元組碼的環境,可以是軟體或是硬體。
JIT是Just In Time 編譯器,用來在執行進行即時的程式碼優化,讓系統跑快一點。
頁:
[1]
2