szg9999 发表于 2011-4-3 15:17:40

多核机器上编程实现将指定进程PID放到指定CPU上运行

在多核心CPU上,0号CPU的使用率要比后面的123号CPU高出25%,在windows系统上可以通过任务管理器--关系设置,来实现将指定的进程放到指定的CPU上运行.这是windows自带的,不知道我们可不可以通过哪个API函数或别的没公开的函数来实现这个过程呢?

Iverson333 发表于 2011-4-3 15:18:03


BOOL SetProcessAffinityMask(
HANDLE hProcess,               // handle to process
DWORD_PTR dwProcessAffinityMask// process affinity mask
);

feiyang025 发表于 2011-4-3 15:18:14


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]
查看完整版本: 多核机器上编程实现将指定进程PID放到指定CPU上运行