我做了一个C应用程序,它只使用没有线程的进程。它只是一个简单的单线程应用程序,可运行1小时左右的计算算法。
事情是,在Windows下运行这个应用程序只运行在一个核心,(我有一个带有4个虚拟核心的i3处理器,因此它不断使用25%的cpu。)
但是,当我在Mac下运行时,应用程序会自动分为核心,并且100%使用cpu。
你知道原因吗?
由于
答案 0 :(得分:1)
这可能是操作系统之间报告CPU使用的默认方式的差异。 OSX报告1核的100%; Windows报告了4个核心中的25%。虽然程序在系统上使用超过100个CPU似乎在数学上是错误的,但在64核服务器上将计算绑定程序报告为1.56%CPU似乎也很奇怪。假设处理器和内存速度相同,请检查完整运行的挂起时间,以验证程序在每个系统上的执行情况类似。