gpt4 book ai didi

javac 在 CPU 利用率上变得疯狂 ECJ 能够为多线程生产者-消费者维持可预测的 CPU 利用率

转载 作者:行者123 更新时间:2023-11-29 03:27:50 26 4
gpt4 key购买 nike

我正在运行 1 个生产者线程、1 个消费者线程问题,共享缓冲区和临时缓存(包含 1000 个元素)。

eclipse 执行 (ECJ) 使用 33% 的 CPU(1 个内核用于生产者,1 个用于消费者,1 个用于主线程{最小处理})。

在执行在 javac 上编译的相同代码时,我看到利用率为 50%(所有 8 个虚拟核心都显示了一些处理)。

我使用的是 Windows 8;具有超线程的四核系统(因此有 8 个虚拟内核)。

谁能解释一下?我的代码在 2 次优化中的表现会如此不同吗?

代码如下: http://pastebin.com/NBkRTcxV

回顾一下:我想知道为什么 javac 编译使用的 CPU 比 ECJ 多得多?请理解我只有 2 个线程(1 个生产者和 1 个消费者),因此理想情况下应该只使用 2 个内核(=1 个物理内核)(= 25% CPU)

最佳答案

CPU 可以自由地将线程分配给它选择的不同内核。有一些 native 库允许您设置线程关联,例如我们自己的 Peter Lawrey 的 library .

关于javac 在 CPU 利用率上变得疯狂 ECJ 能够为多线程生产者-消费者维持可预测的 CPU 利用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20068641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com