对于大量多线程的Java服务器应用程序,更推荐使用更多的CPU核心(6个而不是4个),或者更高的CPU频率(2.53 Ghz而不是2.4 Ghz)。
在我看来,显然更多的核心是要走的路,但我想听听另一种意见。
谢谢。
发布于 2011-04-04 19:29:15
如果您的应用程序具有很好的伸缩性,那么在比较相同架构的机器时,您可以假定用于比较的处理能力是speed * cores。
基于这些假设,您的吞吐量可能与
6核系统的吞吐量最高可提高40%。
但是,为了比较相似但不相同架构的CPU,我建议您查看CPU的SPEC_int_rate或SPEC_fp_rate。(仅在浮点密集时才使用后者,如果不确定,则不使用后者;)
发布于 2011-04-04 19:24:19
既然你说“大量多线程”,我会说更多的核心是首选。更高的时钟速度将意味着线程更快的上下文切换。如果你的算法是并行化的,我会说更多的核心会给你带来更大的提升。
发布于 2011-04-04 19:24:25
如果您的应用程序当前是CPU受限的,并且如果很容易增加执行计算工作的并行线程的数量(即它们之间的依赖性最小),那么您将从增加内核数量中受益。
如果这两个都不是真的(例如,如果您的大多数线程都用于处理磁盘、网络或用户IO),那么无论哪种方式,您都看不到太多好处。
https://stackoverflow.com/questions/5537733
复制相似问题