如何确定PC使用代码的CPU核心数?有没有办法在SAS中做到这一点。我想确定核心数,然后设置我应该运行多少个线程。
答案 0 :(得分:4)
在SAS:
%put &sysncpu;
在java中可以这样做:
Runtime runtime = Runtime.getRuntime();
int nrOfProcessors = runtime.availableProcessors();
在C#中:
System.Environment.ProcessorCount
但这些只是由操作系统设置的环境变量,可以通过编程进行修改。我不知道你是否真的可以获得真实的硬件信息。
答案 1 :(得分:3)
有一个名为SYSNCPU的自动宏变量,可以为您提供CPU数量;不确定这是你想要的数字吗?
答案 2 :(得分:1)
<强>的Delphi 强>:
function TSpinLockPerProcReaderWriterLock.NumberProcessors: Integer;
var
systemInfo: SYSTEM_INFO;
begin
GetSystemInfo({var}systemInfo);
Result := systemInfo.dwNumberOfProcessors;
end;
转码为C#风格的伪语言:
int NumberProcessors()
{
SYSTEM_INFO systemInfo;
GetSystemInfo(ref systemInfo);
return systemInfo.dwNumberOfProcessors;
}
注意:任何已发布到公共领域的代码。无需归属。