限制进程在特定CPU核上运行

news/2025/2/13 18:30:43/

可以通过设置进程的CPU亲和性(affinity)来限制一个进程只在特定的CPU核心上运行。

Windows

python

import psutilprocess = psutil.Process()
process.cpu_affinity([0])

c++

#include <Windows.h>
#include <iostream>void performComputation() {std::cout << "Performing computation..." << std::endl;// 模拟计算任务for (int i = 0; i < 1000000; ++i) {double temp = sqrt(i);}std::cout << "Computation finished." << std::endl;
}int main() {DWORD_PTR processAffinityMask = 1; // 绑定到CPU 0HANDLE hProcess = GetCurrentProcess();if (SetProcessAffinityMask(hProcess, processAffinityMask)) {std::cout << "Process affinity set to CPU 0." << std::endl;performComputation();} else {std::cerr << "Failed to set process affinity." << std::endl;}return 0;
}

Linux

python

import psutilprocess = psutil.Process()
process.cpu_affinity([0])

c++

#include <sched.h>
#include <unistd.h>
#include <iostream>
#include <cmath>
#include <cstring>void performComputation() {std::cout << "Performing computation..." << std::endl;// 模拟计算任务for (int i = 0; i < 1000000; ++i) {double temp = sqrt(i);}std::cout << "Computation finished." << std::endl;
}int main() {cpu_set_t mask;CPU_ZERO(&mask);CPU_SET(0, &mask); // 将进程绑定到CPU 0if (sched_setaffinity(0, sizeof(mask), &mask) == 0) {std::cout << "Process affinity set to CPU 0." << std::endl;performComputation();} else {std::cerr << "Failed to set process affinity: " << strerror(errno) << std::endl;}return 0;
}

http://www.ppmy.cn/news/1571774.html

相关文章

运维_Mac环境单体服务Docker部署实战手册

Docker部署 本小节&#xff0c;讲解如何将前端 后端项目&#xff0c;使用 Docker 容器&#xff0c;部署到 dev 开发环境下的一台 Mac 电脑上。 1 环境准备 需要安装如下环境&#xff1a; Docker&#xff1a;容器MySQL&#xff1a;数据库Redis&#xff1a;缓存Nginx&#x…

深挖vue3基本原理之一 —— 响应式系统(Reactivity System)

响应式系统&#xff08;Reactivity System&#xff09; 1.1 基于 Proxy 的响应式代理 在 Vue 3 中&#xff0c;响应式系统的核心是使用 ES6 的 Proxy 来替代 Vue 2 里的 Object.defineProperty 方法&#xff0c;以此实现更加全面和强大的响应式追踪功能。下面我们来详细剖析这…

Centos10 Stream 基础配置

NetworkManger 安装 dnf install NetworkManager 查看网络配置 nmcli [rootCentos-S-10 /]# nmcli ens33&#xff1a;已连接 到 ens33"Intel 82545EM"ethernet (e1000), 00:0C:29:08:3E:71, 硬件, mtu 1500ip4 默认inet4 192.168.31.70/24route4 default …

Leetcode - 周赛435

目录 一、3442. 奇偶频次间的最大差值 I二、3443. K 次修改后的最大曼哈顿距离三、3444. 使数组包含目标值倍数的最少增量四、3445. 奇偶频次间的最大差值 II 一、3442. 奇偶频次间的最大差值 I 题目链接 本题使用数组统计字符串 s s s 中每个字符的出现次数&#xff0c;然后…

spring cloud和spring boot的区别

Spring Cloud和Spring Boot在Java开发领域中都是非常重要的框架&#xff0c;但它们在目标、用途和实现方式上存在明显的区别。以下是对两者区别的详细解析&#xff1a; 1. 含义与定位 Spring Boot&#xff1a; 是一个快速开发框架&#xff0c;它简化了Spring应用的初始搭建以…

前端性能分析常见内容

前端性能分析是前端开发中的重要部分&#xff0c;以下是对前端常考性能分析题目的详解&#xff1a; 一、性能指标 前端性能优化的核心目标是提升用户体验&#xff0c;常见的性能指标包括&#xff1a; 加载时间&#xff08;Load Time&#xff09;&#xff1a;指从用户发出请求…

LabVIEW用户界面设计原则

在LabVIEW开发中&#xff0c;用户界面&#xff08;UI&#xff09;设计不仅仅是为了美观&#xff0c;它直接关系到用户的操作效率和体验。一个直观、简洁、易于使用的界面能够大大提升软件的可用性&#xff0c;尤其是在复杂的实验或工业应用中。设计良好的UI能够减少操作错误&am…

MindStudio制作MindSpore TBE算子(四)算子测试(ST测试-Ascend910B/ModelArts)--失败尝试

上一节&#xff0c;MindStudio制作MindSpore TBE算子&#xff08;三&#xff09;算子测试&#xff08;ST测试&#xff09;&#xff0c;因此缺乏对应的硬件环境导致无法进行ST测试&#xff0c;导致难以自安&#xff0c;今天搞来Ascend910B服务器来填坑&#xff0c;看看是否是硬件…