用SetProcessAffinityMask为进程指定CPU
2007-10-30 19:21
459 查看
TheSetProcessAffinityMaskfunctionsetsaprocessoraffinitymaskforthethreadsofthespecifiedprocess.
BOOLSetProcessAffinityMask(
HANDLEhProcess,
DWORD_PTRdwProcessAffinityMask
);
//getsysteminfo
SYSTEM_INFOSystemInfo;
GetSystemInfo(&SystemInfo);
printf(""
"dwNumberOfProcessors=%u,dwActiveProcessorMask=%u,wProcessorLevel=%u,"
"wProcessorArchitecture=%u,dwPageSize=%u",
SystemInfo.dwNumberOfProcessors,SystemInfo.dwActiveProcessorMask,SystemInfo.wProcessorLevel,
SystemInfo.wProcessorArchitecture,SystemInfo.dwPageSize
);
if(SystemInfo.dwNumberOfProcessors<=1)return;
DWORDdwMask=0x0000;
DWORDdwtmp=0x0001;
intnProcessorNum=0;
for(inti=0;i<32;i++)
...{
if(SystemInfo.dwActiveProcessorMask&dwtmp)
...{
nProcessorNum++;
if(nProcessorNum<=2)
...{
//如果系统中有多个处理器,则选择第二个处理器
dwMask=dwtmp;
}
else
...{
break;
}
}
dwtmp*=2;
}//endoffor
//进程与指定cpu绑定
SetProcessAffinityMask(GetCurrentProcess(),dwMask);
//线程与指定cpu绑定
//SetThreadAffinityMask(GetCurrentThread(),dwMask);
return;
BOOLSetProcessAffinityMask(
HANDLEhProcess,
DWORD_PTRdwProcessAffinityMask
);
//getsysteminfo
SYSTEM_INFOSystemInfo;
GetSystemInfo(&SystemInfo);
printf(""
"dwNumberOfProcessors=%u,dwActiveProcessorMask=%u,wProcessorLevel=%u,"
"wProcessorArchitecture=%u,dwPageSize=%u",
SystemInfo.dwNumberOfProcessors,SystemInfo.dwActiveProcessorMask,SystemInfo.wProcessorLevel,
SystemInfo.wProcessorArchitecture,SystemInfo.dwPageSize
);
if(SystemInfo.dwNumberOfProcessors<=1)return;
DWORDdwMask=0x0000;
DWORDdwtmp=0x0001;
intnProcessorNum=0;
for(inti=0;i<32;i++)
...{
if(SystemInfo.dwActiveProcessorMask&dwtmp)
...{
nProcessorNum++;
if(nProcessorNum<=2)
...{
//如果系统中有多个处理器,则选择第二个处理器
dwMask=dwtmp;
}
else
...{
break;
}
}
dwtmp*=2;
}//endoffor
//进程与指定cpu绑定
SetProcessAffinityMask(GetCurrentProcess(),dwMask);
//线程与指定cpu绑定
//SetThreadAffinityMask(GetCurrentThread(),dwMask);
return;
相关文章推荐
- 用SetProcessAffinityMask为进程指定CPU
- taskset - retrieve or set a process's CPU affinity
- SetThreadAffinityMask设置使用多核CPU的哪个核心
- SetThreadAffinityMask设置使用多核CPU的哪个核心
- SetThreadAffinityMask设置使用多核CPU的哪个核心
- 多cpu下SetThreadAffinityMask运用框架
- 将进程或线程attach到一个特定CPU核上的方法(sched_setaffinity pthread_setaffinity_np example)
- SetThreadAffinityMask 把线程限定在CPU上运行
- 48.VC(custom)-SetThreadAffinityMask 把线程限定在CPU上运行
- 通过设置进程或线程的亲缘性(affinity),使进程或线程在指定的CPU(核)上运行
- 负载均衡-指定进程/线程运行的CPU-(affinity setup)
- linux下让进程运行在指定的cpu上
- 设置cpu亲和性---即 绑定特定的进程线程到指定的cpu
- linux ps命令,查看某进程cpu和内存占用率情况, linux ps命令,查看进程cpu和内存占用率排序。 不指定
- linux下简单的统计指定进程ID(或进程名)CPU、内存脚本
- Process和Thread在指定CPU运行
- linux进程、线程与cpu的亲和性(affinity)
- VC判断指定进程是否存在IsExistProcess
- Linux_多核系统下绑定进程或线程到指定CPU_核执行
- taskset榨干服务器CPU:让进程运行在指定的CPU内核