多核机器上编程实现将指定进程PID放到指定CPU上运行
在多核心CPU上,0号CPU的使用率要比后面的123号CPU高出25%,在windows系统上可以通过任务管理器--关系设置,来实现将指定的进程放到指定的CPU上运行.这是windows自带的,不知道我们可不可以通过哪个API函数或别的没公开的函数来实现这个过程呢?BOOL SetProcessAffinityMask(
HANDLE hProcess, // handle to process
DWORD_PTR dwProcessAffinityMask// process affinity mask
);
procedure SetCPU(h: THandle; CpuNo: Integer);//cpuNo = 1..n
var
ProcessAffinity: Cardinal;
_SystemAffinity: Cardinal;
begin
GetProcessAffinityMask(h, ProcessAffinity, _SystemAffinity);
ProcessAffinity := CpuNo;
SetProcessAffinityMask(h, ProcessAffinity)
end;
setCpu(GetCurrentProcess, 2); //到 cpu 核心 2 上面运行
页:
[1]