看板 java 關於我們 聯絡資訊
※ 引述《Lordaeron (Terry)》之銘言: : ※ 引述《adrianshum (Alien)》之銘言: : : 需要用 64bit JVM 的, 十居其九是為了 : : memory, 而不是 performance. : : 32bit JVM, max heap size 最多只能設到 1GB 多. : : 不要忘了這 1GB heap size 還要把 app server 和 : : 各類底層 framework 算在內. : : 比較大型的 application 這 1GB 很容易就不夠了. : : 要解決這種 "不夠" 還是非得修改整個系統的設計不可. : : 就算用的 memory 會增加 50%, performance 會降個 : : 15%, 這些只是多花一點點錢就能買到的 (10GB 的memory : : , 多一顆 CPU 才多花多少錢...) : : 比如說, 要是我的 application 本來要 3GB 才夠跑. : : 32bit JVM 的話: 掰掰, 你大修一次你的 app 吧. : : 64bit JVM: 買夠 5GB 的 memory 就好了. : : 最重要是要搞清楚 64bit JVM 最主要解決的是什麼問題吧. : : 64bit JVM 不是靈丹妙藥一服下就什麼都變得更好. : 多補充一下, 多一顆CPU 也不是什麼靈丹妙藥一服下就什麼都變得更好. : single-threaded 的東西, 加一百顆CPU, 它依然是只用一顆. : 而本身是multi-threaded的也會由於lock 變多, 會不會讓你拿回15% 還很難講 : 最單的測試有: : http://mlee888.wordpress.com/2006/03/31/ : java-performance-in-dual-coremultiprocessor-environment/ 要用到 >2GB heap size 的 application 絕絕大部份是 enterprise grade 的 application. 企圖用 single-threaded application 來說多加 CPU未必有用, "不是錯, 但沒啥意義" 另, 要是因為增加 lock 而令到 multi-thread application 在增加 core 也沒有 performance 增長, 這種情況絕大部份都是程式設計失當, 造成 大量 resource contention. 這種情況不管多少個 core, 那 resource contention 的部份都是 bottleneck. 用這樣的例子去說 多加 CPU 未必有用, 也是 "不是錯, 但沒啥意義" 總歸一句, 轉用 64bit VM 也好, 加 CPU 也好, 大家 需要知道的是: 用什麼手段來解決我面對的問題. 明明是 DB 不夠力, 你在 applicatoin server 狂 加 RAM 狂加 CPU 也是徒然; 明明是算法令 performance 低下, 轉 64bit VM 加大 heap size 又有什麼用? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.238.156.185
youknowme09:我也覺得64bit是為了能使用更多的memory,跟效能無直 02/23 19:06
youknowme09:接關係 02/23 19:07
GALINE:其實還是有用啦,轉移後加RAM的成本可能比打掉重練低的多 02/23 22:44
GALINE:而且執行時間可能是以年為單位,雖然治本但時效... 02/23 22:46