multithreading - 为什么一个进程在双核机器上使用两倍多的 CPU 资源?
问题描述
我希望有人可以在这里为我指明正确的方向,以便我可以了解更多信息。
我们在 iMac Pro 8 核机器上运行了一个进程,它使用了大约 78% 的 CPU。
当我们在新的 Mac Pro 16 核机器上运行相同的进程时,它使用了约 176% 的 CPU。
这可能有什么原因?我们希望额外的内核可以让我们同时运行更多的进程,但是如果每个使用超过两倍的 CPU 资源,这是否意味着我们将能够在新机器上运行更少的进程?
关于建筑,我肯定缺少一些明显的东西。有人可以帮忙吗?我知道我没有包含任何代码示例,我在更一般的意义上询问可能导致这种情况的场景。
解决方案
我怀疑 CPU 线程管理器试图尽可能多地使用 CPU。如果有更多进程需要 CPU 时间,那么这些周期将更加谨慎地分配给每个进程。大概您的任务在新 Mac 上运行得相应更快?
推荐阅读
- java - Firebase 插入覆盖而不是附加
- java - 空指针异常 - 驱动程序空
- python - GridSearchCV 错误:预期类数组(数组或非字符串序列),得到
- javascript - Express.js 'app' 一行而不是两行
- swift - Swift:日期无法解析“yyyy-MM-dd'T'HH:mm:ss”字符串
- sql - SQL - zabbix 项目的异构查询错误
- vue.js - 是否可以在 VueJS 中传递反应属性?
- android - 如何完全销毁对话框片段以解决内存泄漏问题?
- php - CodeIgniter,在服务器上找不到请求的 URL
- c# - 如何通过 Webhooks C# 发送带有 POST 请求的 Discord 嵌入