![]() |
1
725
您可以使用 sysctl 效用:
|
![]() |
2
125
更容易:
|
![]() |
3
23
这应该是跨平台的。至少对于Linux和Mac OS X而言。
有点慢,但管用。 |
![]() |
4
18
要在C中执行此操作,可以使用sysctl(3)系列函数:
代替计算核心数的“hw.logicalcpu”的有趣值是:
|
![]() |
5
9
|
![]() |
6
8
系统剖析器sphardwaredatatype显示我有1个处理器和4个核心。 [~]系统剖析器sphardwaredatatype 硬件:
[至] 但是,sysctl不同意: [~]系统控制-n硬件.逻辑计算 八 [~]系统控制-硬件物理CPU 四 [至] 但是sysctl看起来是正确的,因为当我运行一个应该占用所有CPU插槽的程序时,我看到这个程序占用了接近800%的CPU时间(在顶部):
PID命令%cpu
|
![]() |
7
8
使用
我有一个:
根据维基百科,(
http://en.wikipedia.org/wiki/Intel_Core#Core_i7
)没有具有8个物理核心的核心i7,因此
超线程
想法就是这样。忽略
运行一个与4核并行的编译器似乎不会显著影响常规的操作系统操作。所以,把它当作8个核心来处理并不是那么糟糕。 |
![]() |
8
7
正如JKP在评论中所说,这并不能显示物理内核的实际数量。要获取物理核心的数量,可以使用以下命令:
|
![]() |
9
3
下面的命令提供了有关CPU的所有信息
|
![]() |
10
1
澄清 当被问到这个问题时,操作人员没有说他想要 逻辑 核心而不是 实际的 核心的数量,所以这个答案逻辑上(没有双关语)的答案是用一种方法得到 实际的 实际物理核心的数量,而不是操作系统试图通过超线程巫术虚拟化的数量。 更新以处理Yosemite中的缺陷 由于奇怪 bug 在OSXyosemite(以及可能更新的版本,比如即将推出的ElCapitan)中,我做了一个小修改。(如果忽略stderr,旧版本仍然可以很好地工作,这是所有修改都对您有效。) 这里给出的其他答案也一样
获取核心数量的方法是,可靠、正确、合理、快速,并且在答案周围没有额外的信息或甚至额外的字符,这是:
|
![]() |
11
1
在一
MacBook Pro跑步小牛
,
尤其是对于具有
|
![]() |
12
0
以上2个好回复的评论: 1)JKP接受的回复(及意见)回复:hw.ncpu明显被否决,赞成hw.logicalcpu。( https://ghc.haskell.org/trac/ghc/ticket/8594 )
2)更新2014年卡尔EHR:在我的电脑(2.5 GHz Intel Core i7)上,
machdep.cpu.logical_per_包:16 machdep.cpu.cores_per_包:8 所需值为: machdep.cpu.core_计数:4 machdep.cpu.thread_计数:8 哪一个匹配: 硬件物理CPU:4 硬件逻辑CPU:8 |
![]() |
Darky · 多重定义…c++vsCode[重复] 2 年前 |
![]() |
Jim Merkel · 软件包管理器如何知道在哪里安装文件 3 年前 |
![]() |
franco yang · makefile中的循环main 3 年前 |
![]() |
dopller · 使用cmake将仅标题库包含到我的项目时出错 3 年前 |
![]() |
Andres Moreno Abrego · 为什么当BOOL_VAR为false时,Makefile表达式“export INTEGER_VAR?=$(if$(BOOL_VAR),2,5)”会导致INTEGER_VAR=2? 3 年前 |
![]() |
miterhen · 发生错误后,如何继续中断编译? 6 年前 |