关于windows API函数GetSystemInfo获取获取CPU逻辑核数(线程数)不对的问题

morebettercln 2020-09-08 08:21:51
本人之前都是使用GetSystemInfo来获取CPU逻辑核数,环境:win7 x64;2个物理CPU;每个CPU都是16个核;
使用GetSystemInfo获取CPU逻辑核数dwNumberOfProcessors=32,是两个物理CPU的总逻辑核数;
现于一台新电脑上,仍使用GetSystemInfo发现,只获取了一个CPU的逻辑核数;新电脑环境:win10 x64;2个物理CPU;每个CPU都是48个核;使用GetSystemInfo获取CPU逻辑核数dwNumberOfProcessors=48,是一个物理CPU的逻辑核数;为什么不是96?请大神帮忙解释下,感谢!
另附上GetSystemInfo获取CPU逻辑核数的使用程序:
SYSTEM_INFO sys;
GetSystemInfo(&sys);
int num = 0;
num = sys.dwNumberOfProcessors;
...全文
984 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
我叫侯万楼 2020-09-10
  • 打赏
  • 举报
回复
std::thread::hardware_concurrency(); 这个试试行不行
morebettercln 2020-09-09
  • 打赏
  • 举报
回复
引用 2 楼 早打大打打核战争的回复:
GetLogicalProcessorInformationEx
你好,能具体说一下吗?不太懂这方面的内容
morebettercln 2020-09-09
  • 打赏
  • 举报
回复
引用 1 楼 陈仲甫的回复:
猜测是不是这个原因:你的32位程序跑在WOW64上,GetNativeSystemInfo试试

To retrieve accurate information for an application running on WOW64, call the GetNativeSystemInfo function.
你好,我的程序是64位的,和系统一样
  • 打赏
  • 举报
回复
GetLogicalProcessorInformationEx
an_bachelor 2020-09-08
  • 打赏
  • 举报
回复
猜测是不是这个原因:你的32位程序跑在WOW64上,GetNativeSystemInfo试试

To retrieve accurate information for an application running on WOW64, call the GetNativeSystemInfo function.

24,857

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧