当你运行Mac OS X时,你如何从命令行得知机器上有多少核?在Linux上,我使用:
x=$(awk '/^processor/ {++n} END {print n+1}' /proc/cpuinfo)
虽然不完美,但已经很接近了。这是为了让feedto make,这就是为什么它给出的结果比实际数字高1。我知道上面的代码可以用Perl写得更密集,也可以用grep、wc和cut来写,但我认为上面的代码是简洁和可读性之间的一个很好的折衷。
非常晚的编辑:澄清一下:我问的是有多少逻辑核可用,因为这对应于我想要生成多少同步作业。jkp的回答,经过Chris Lloyd的进一步完善,正是我所需要的。YMMV。
以上2个好的回复:
1)关于接受jkp: hw的回复(和意见)。Ncpu显然已被弃用,而支持hw。logicalcpu (https://ghc.haskell.org/trac/ghc/ticket/8594)
2)关于Karl Ehr的2014年更新:在我的电脑上(2.5 ghz英特尔酷睿i7),sysctl -a | grep machdep。CPU | grep per_package返回不同的数字:
machdep.cpu。logical_per_package: 16
machdep.cpu。cores_per_package: 8
需要的值为:
machdep.cpu。core_count: 4
machdep.cpu。thread_count: 8
匹配:
hw.physicalcpu: 4
hw.logicalcpu: 8