我有一個運行在Coldfusion 10 64bit
上的web服務。在調查內存泄漏時,我將JRE從1.6升級到1.7,但注意到性能明顯下降。我創建了一個簡單的測試webservice,在JRE 1.6上,只要將JRE更改爲1.7,我就可以以每分鐘5000個請求的速度輕鬆運行,儘管此速率每分鐘降低到2000或更低。有誰知道調整設置或我缺少的東西。Coldfusion 10在使用Java 1.7時比使用1.6時慢很多
首選是使用JRE 1.7
,因爲它似乎已修復了我遇到的內存泄漏問題。
運行服務器JRE:Java版本 「1.7.0_51」 的Java(TM)SE運行時環境(建立1.7.0_51-B13)的HotSpot的Java(TM)64位服務器VM(24.51建設-B03,混合模式)
垃圾收集JVM設置:
-XX:+UseParallelGC
更改垃圾收集:
-XX:+UseG1GC
這沒有什麼區別。
跟隨the recommendations from here沒有增加表現。將與jvisualvm審查和張貼我的發現。
更新: Java 7有changed the way it deals with synchronizing class loaders,它看起來像這可能是放緩的原因。
更新 Adobe已經確認了該錯誤並正在修復它。 Adobe bug base record.
您正在運行服務器JRE還是客戶端JRE? –
好問題彼得。我怎麼知道我正在運行哪一個? –
應該說,如果你從命令行執行'java -version' - 如果CF沒有使用系統默認值,你需要'/ path/to/cf/jre/bin/java -version'或類似的。或者查看CF管理員的「系統信息」頁面 - 看起來你會想要Java VM Name中的「64位服務器虛擬機」。 –