簡體   English   中英

是否可以直接在 jvm 中實現 java 應用程序的一部分?

[英]Is it possible to implement a part of a java application directly in jvm?

我在我的大學學習了ijvm (jvm 的一個子集),它提出了一個問題:是否可以直接在 jvm 中實現 java 應用程序的一部分以提高性能? ... 就像您可以在匯編中實現 C 程序的一部分一樣。

如果可能,我將非常感謝展示它的代碼片段。

是否可以直接在 jvm 中實現 java 應用程序的一部分?

我認為您的意思是在 JVM 字節碼中編程。

對的,這是可能的。 但是,您不太可能通過這樣做獲得顯着的改進。

為什么?

因為現代 JVM 1實際上將字節碼編譯為本機代碼,而字節碼到本機代碼編譯器通常會進行一些非常認真的優化。

所以:

  • 您對編寫更好(更快)字節碼的任何見解都可能是錯誤的。

  • 通過優化字節碼,您實際上可能會干擾字節碼到本機代碼編譯器的優化能力。

此外,JVM 字節碼需要遵循一些相當嚴格的規則,這些規則旨在避免運行時類型錯誤。 如果您的手寫字節碼違反了這些規則,它們將(應該!)在類加載時被驗證器拒絕。

但是如果你想嘗試,有編寫字節碼匯編語言的工具; 請參閱有哪些 JVM 匯編程序? .


1 - JIT 編譯首先在 JDK 1.2 中的主流 (Sun) Java 中得到支持。 在此之前,JVM 僅解釋字節碼,而手動編碼字節碼更有可能產生影響。 但在那些日子里,獲得更好性能的方法是用 C 編寫 Java 應用程序的性能關鍵部分,並通過 JNI 調用 C。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM