在构建我们当前的项目时,
GWT编译需要相当大的总时间(目前总共约25分钟,2/3 gwt编译).我们研究了如何优化(例如
here)
但最终我们决定购买一台新的构建服务器. GWT编译是一项CPU密集型任务,所以我们做了一些测试来分析每个核心的改进:
> 1个核心= 197s
> 2核= 165s
> 3个核心= 149个
> 4个核心= 157s(可能是最后一个核心忙于其他任务)
从这些数字来看,似乎增加更多核心并不一定能提高性能,因为这些数字似乎趋于平缓.
1.)
所以,如果你们中的某个人可以证实/反驳这一点,那么现在我会被强迫吗?所以8或12个核心不一定有所不同 – 但个别CPU速度(mhz)呢?
2.)
在看到一些基准测试后,我们的销售往往会购买* ntel至 – 对AMD的任何经验? (我更像是一个AMD人,但目前似乎很难忽视这些基准)
3.)欢迎任何有关内存,IO等的建议
更新:当我们得到新服务器时,我会发布更新后的号码……
最佳答案 我们使用AMD FX-8350(@ 4.00 Ghz)和三星830 Pro SSD.我们设置localWorkers = 4以及-Xmx2048m.之前我们使用过Intel XEON E5-2609(@ 2.40 Ghz).这将编译时间从~440秒减少到~310秒.
因此,我们还体验到,在单个编译过程(localWorkers = 4)的情况下,原始CPU速度最重要.如果在此计算机上同时运行多个编译过程,SSD会改进IO等待时间,这会随着并发编译过程的数量而增加.
我们当前的硬件同时支持多达4个maven版本(每个版本都有localWorkers = 4),然后使用高达20GB的RAM.随着并发构建数量的增加,构建时间也会增加.但它不是线性增加,因此我们尝试在单个maven进程(Java类编译,测试……)不使用所有资源的时间段内减少空闲时间.
在我们比较硬件价格时,我们决定在Jenkins buildfarm购买一台用作奴隶的消费PC.总体价格比服务器硬件便宜得多,并且在硬件故障的情况下可以很容易地用新的硬件替换.