【base库学习】进程绑定cpu方法
来源:互联网 发布:sybase数据库学习 编辑:程序博客网 时间:2024/06/05 11:43
affinity.h
#ifndef BASE_AFFINITY_H_#define BASE_AFFINITY_H_namespace base { void ApplyAffinitySetting();} // namespace base#endif // BASE_AFFINITY_H_
affinity.cc
#include "base/affinity.h"#include <unistd.h> // gcc 4.7 is needed#include <sys/sysinfo.h>#include <sched.h>#include <string>#include <vector>#include "base/flags.h"#include "base/string_util.h"DEFINE_string( affinity_setting, "", "Affinity setting: specify the cpu ids, seperated by comma.E.g.: '0,1'");namespace base { void ApplyAffinitySetting() { if (FLAGS_affinity_setting.empty()) { return; } std::vector<std::string> results; SplitString(FLAGS_affinity_setting, ',', &results); int cpu_num = sysconf(_SC_NPROCESSORS_CONF); cpu_set_t mask; CPU_ZERO(&mask); for (int i = 0; i < results.size(); i++) { int cpu_id = StringToInt(results[i]); CHECK_LT(cpu_id, cpu_num); CPU_SET(cpu_id, &mask); } LOG(INFO) << "Set CPU affinity " << FLAGS_affinity_setting; if (sched_setaffinity(0, sizeof(mask), &mask)) { LOG(WARNING) << "Could not set CPU affinity " << FLAGS_affinity_setting; } }} // namespace base
该方法主要用于实现将当前进程绑定到指定的CPU上面执行。
主要实现方法ApplyAffinitySetting()
sysconf是<sys/sysinfo.h>中的方法,主要获取选项的当前值。
sysconf(_SC_NPROCESSORS_CONF)获取cpu个数
sysconf(_SC_PAGESIZE)获取系统页面大小
sysconf (_SC_PHYS_PAGES)获取物理页个数
- 【base库学习】进程绑定cpu方法
- 查看进程绑定cpu
- 绑定进程与CPU
- linux shell 查看进程运行或绑定的cpu和绑定执行进程到特定cpu上执行的方法
- 进程绑定CPU简单应用
- 进程绑定CPU简单应用
- 进程线程与cpu绑定
- 【进程线程绑定CPU】总结
- linux cpu数物理核逻辑核的查看方法及线程进程的绑定方法
- 绑定进程到某个cpu核上
- Linux 下绑定进程到 CPU
- 如何绑定进程到指定的CPU
- Linux下进程绑定多CPU运行
- Ubuntu系统进程绑定CPU核
- Ubuntu系统进程绑定CPU核
- Ubuntu系统进程绑定CPU核
- Linux 进程绑定CPU用taskset
- linux绑定进程到指定cpu
- Praat脚本如何实现将数字的文件名根据需要设定同样的位数以0补充
- 阿里云linux绑定域名
- maven中跳过单元测试
- 快捷键
- HBase中的MapReduce 使用多个Scan和多个表
- 【base库学习】进程绑定cpu方法
- 在线工具
- 一些CSS兼容的小技巧
- 自动修改windwos注册表信息
- qt中让控件位置岁窗口大小自动调整,并且自身大小不变
- linux定时删除文件
- Ubuntu下eclipse安装
- Agri-Net
- 利用POI将PPT转换为图片