我有一个单线程程序,单独运行时几乎可以使用100%的CPU。如果我在单独的提示中实例化它的多个实例,它们都会大大减慢(大约8倍)。我在Ubuntu 12.04上运行jre版本1.7.0_25,使用英特尔®酷睿™i7-3930K CPU @ 3.20GHz×12和64 GB RAM。什么可能导致减速?当然,程序不能竞争相同的CPU。并且,我一直确保我运行的核心比核心少。我很欣赏任何见解。 谢谢, 苏雷什
答案 0 :(得分:0)
每个实例都创建一个单独的JVM,它具有不同的初始堆(由-Xms JVM参数定义)和程序资源。如果你有太多实例,那么操作系统将内存交换到磁盘并且CPU的上下文将在java进程之间连续切换也就不足为奇了。