Java 8,Spring Boot 2。 我正在使用多个线程和CompletableFuture测试性能,当我意识到只有1个核心在窒息和其余部分基本上没有做太多工作。 high load on only 1 core
其他核心上的某些负载可能是由计算机上运行的其他进程引起的。 我试图弄清楚问题是什么,而不是意识到
Runtime.getRuntime().availableProcessors()
总是在运行时返回1。如果我启动了多个线程并不重要,数字总是1(应该是8)。 然后我创建了简单的Unit测试类并运行availableProcessors()代码并得到8. Cleary,连接到Spring上下文的东西使运行时不能看到所有可用的内核。 帮助
答案 0 :(得分:1)
问题未与Hibernate,Spring或任何其他容器相关联。我们在启动期间有jni4net Bridge注册DLL文件(第三方库)。当DLL中的第一个Service类被实例化时,我们从8个核心减少到1个核心......显然与dll或桥接器有关。由于这是完全其他类型的问题,我认为这对于这篇文章来说已经足够了。