日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
別用Java7?你是在開玩笑嗎?

Java 7 剛剛發(fā)布沒兩天,但來自Lucene 和Solr 社區(qū)的某些人立即報料了一些Java 7 中的嚴重bug。甚至 Apache Lucene 項目管理委員會成員Uwe Schindler 發(fā)布了暫時不要使用Java 7 的警告信息。那么到底Java 7 是有什么問題,為什么我們等了5 年的 Java 7 現在卻不能使用呢?讓我們來看看實際的情況:

成都網站制作、成都做網站的關注點不是能為您做些什么網站,而是怎么做網站,有沒有做好網站,給創(chuàng)新互聯一個展示的機會來證明自己,這并不會花費您太多時間,或許會給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗,一切以用戶為中心。

推薦專題:Java 7正式發(fā)布

這個問題跟Java 7 無關,而是跟JVM 有關

首先這個問題是跟HotSpot JVM 有關,而不是Java 7 語言本身的問題。此次發(fā)布的 GA 版本包含三個bug:7070134, 7044738 和 7068051 ,這三個bug直接導致JVM 崩潰或者進行錯誤的計算。

Hotspot是因為PorterStemmer 的sigsegv 而崩潰的

第一個問題(7070134) 是關于錯誤的編譯器對循環(huán)的優(yōu)化,該特性在Hotspot JVM 中是默認啟用的,你可以通過 -XX:-UseLoopPredicate 參數來關閉這個特性。如果你想了解關于這個問題的詳情,請看Stemmer.java ,編譯并允許這個類你將會重現 JVM 崩潰并報嚴重錯誤,信息如下:

 
 
 
  1. # A fatal error has been detected by the Java Runtime Environment:
  2. #
  3. # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000026536da, pid=5432, t
  4. id=6568
  5. #
  6. # JRE version: 7.0-b135
  7. # Java VM: Java HotSpot(TM) 64-Bit Server VM (21.0-b05 mixed mode windows-amd64
  8. compressed oops)
  9. # Problematic frame:
  10. # J Stemmer.step4()V

這個錯誤直接在代碼執(zhí)行過程中發(fā)生,在JDK 1.6 是體驗不到的。而最近Lucene 做了一些更靈活的基于 PulsingCodec 算法的索引機制,而這個機制相當大的程度上會導致上述的錯誤。

循環(huán)展開優(yōu)化會導致不正確的結果

第二個bug (7044738) 是“錯誤的計算”,這個錯誤極為罕見的發(fā)生在OSR (On-Stack Replacement) 編譯嵌套循環(huán)上,控制流退出且對應的內存沒有被考慮到,這直接導致重復的克隆結果,想了解編譯細節(jié)請看older overview (PDF)

一個最簡單的解決辦法就是使用 -XX:LoopUnrollLimit=1 參數來避免這個問題。

Clone loop predicate during loop unswitch

第三個bug(7068051) 跟一些老的 feature request 相關,由于一些無效的JVM 統計導致使用循環(huán)優(yōu)化后的JVM 崩潰。

結論

根據這些bug的情況,只有在你大量的使用這些優(yōu)化方法,那么你才可能已經受 Java 7 中存在的問題所影響。一般情況下是不受影響的。事實上 Java 6 的用戶使用了某些優(yōu)化選項也會存在問題,但因為這些優(yōu)化選項在 Java 7 中是默認啟用的才導致這個問題影響那么大,例如 (-XX:+OptimizeStringConcat or -XX:+AggressiveOpts) ,由于這些問題在 Java 7 發(fā)布的前 5 天才被發(fā)現,因此 Oracle 來不及解決這些bug,目前 Oracle 似乎也正在準備下一個補丁版本,但對一些高級用戶來說,這些都不是問題,因為源碼是開放的,你可以做你想做的。

本文譯自 http://blog.eisele.net/2011/07/dont-use-java-7-are-you-kidding-me.html


分享文章:別用Java7?你是在開玩笑嗎?
文章分享:http://www.5511xx.com/article/coededs.html