我知道Java可以全面優化,並且可以根據有多少個案例,交換器是稀疏還是密集,以及代碼是否足夠熱以使JIT優化所述代碼來優化交換器。我只是想知道,如果我需要進一步提供「輔助」,比如使用按位進行測試,或者對變量進行測試,或者將變量逐位移動到「更好」的數字,假設代碼確實很熱。 「更好」是0xXX而不是0xFFXX。是否有熱點JIT文檔明確說明需要什麼?而不是「只是沿着xxx的通用編程指南」。Java通常需要多少程序員「協助」才能將JIT切換到調度表?
5
A
回答
0
由於Java本身運行在virtual machine,除非我在這裏丟失了一些東西,我不認爲有一個簡單的方法來做到這一點。
因此,用Java,你會得到一個黑匣子,並且優化更多是有風險的,恕我直言。
對於熱點JIT白皮書,see here
1
有不會是一個簡單的答案。
我會把這個問題提供給hotspot-dev - 他們可能會提供更多關於這種情況的信息。
誰可能對這個有趣的觀點掛出JVM-1的郵件列表上的其他人(查理·納特,雷米Forax,約翰·羅斯等)
2
對於任何tableswitch
或lookupswitch
的決定已經完成由javac
編譯。我從未聽說過JIT試圖將lookupswitch
轉換爲tableswitch
。
所以你的第一步應該是檢查什麼字節碼javac
翻譯你的switch
。
+0
那麼,爲了確保javac使它成爲一個tableswitch,安全的編碼假設(具體的內部編譯器規則)是什麼?而不是隻是「猜測」,做反覆試驗,並進入字節碼,這感覺「髒」。 –
相關問題
- 1. 需要多少時間才能調整表格大小?
- 2. 需要幫助才能獲得兩個類互相協助
- 3. 需要幫助才能將簡短的Objective-C例程轉換爲Java
- 4. 需要幫助減少表的寬度
- 5. 需要幫助調整腳本才能正常工作
- 6. 需要協助PIVOT表
- 7. 需要幫助從RVM切換到RBENV
- 8. Android應用程序需要消耗多少cpu才能達到cpu密集?
- 9. Android Market需要上傳多少時間才能看到上傳應用程序?
- 10. 在Java中調度需要幫助?
- 11. 需要多少Java纔能有效地使用Hadoop和Mahout?
- 12. 需要幫助才能轉換爲多類分層結構
- 13. 需要多個調度程序
- 14. 嘗試將C++程序轉換爲Java。需要Memcpy幫助
- 15. mongoDB中需要多少個表才能使用fosuserbundle symfony 3.2?
- 16. 熊貓 - 弄清楚需要多少行才能到達pct
- 17. 估計需要多少時間才能遷移到wcf
- 18. 需要一些協助與java堆棧
- 19. 需要多少時間才能完成一個過程 - 通過WCF服務
- 20. iOS需要會員才能使用的應用程序
- 21. 新手Java程序員需要幫助涉及循環
- 22. (非常)新手JavaScript程序員需要幫助理解實用功能
- 23. 需要多少時間才能在App Store中提供應用程序
- 24. 我們需要多少個9patch圖片才能使用android應用程序?
- 25. 需要VB代碼才能將其轉換爲Java
- 26. 需要將多少個字符添加到字符串才能生成迴文
- 27. Apple會員需要多少天才能提交應用更新以供審覈?
- 28. 我需要我的Java程序幫助
- 29. 需要APK版本才能幫助
- 30. 需要幫助才能明白NDKHelper
我擔心這會成爲答案。我只是想知道熱點或可比較的JIT的優化條件,以優化密集切換到調度表中,此後發現它很熱並且被選爲優化。 –
我明白你的意思了。嗯,我會盡我所能在這個問題上給予賞金。 – Coffee