作者adrianshum (Alien)
看板java
标题Re: 64 bit 有比32 bit 好? 还是看图吧.
时间Wed Feb 23 14:33:33 2011
※ 引述《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
1F:→ youknowme09:我也觉得64bit是为了能使用更多的memory,跟效能无直 02/23 19:06
2F:→ youknowme09:接关系 02/23 19:07
3F:推 GALINE:其实还是有用啦,转移後加RAM的成本可能比打掉重练低的多 02/23 22:44
4F:→ GALINE:而且执行时间可能是以年为单位,虽然治本但时效... 02/23 22:46