如何确定PC的CPU核心数?

时间:2010-08-30 03:58:36

标签: sas

如何确定PC使用代码的CPU核心数?有没有办法在SAS中做到这一点。我想确定核心数,然后设置我应该运行多少个线程。

3 个答案:

答案 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;
}
  

注意:任何已发布到公共领域的代码。无需归属。