首页 / 知识
关于性能:C ++中的CPU节流
2023-04-11 15:50:00

CPU throttling in C++我只是想知道是否有一种优雅的方法来为执行密集计算的特定线程设置最大CPU负载。 现在,我在线程中找到了最耗时的循环(它仅压缩),并使用带有硬编码值的 我不知道有任何API可以使操作系统的调度程序执行您想要的操作(即使您的线程是空闲优先级的,如果没有更高优先级的就绪线程,您的线程也会运行)。但是,我认为您可以根据已经在做的事情即兴发挥一个相当优雅的调节功能。本质上(我没有Windows开发机): 选择线程在每次迭代中休眠的默认时间。然后,在每次迭代中(或在每第n次迭代中,使节流功能本身不会成为很大的CPU负载), 根据看门狗计算CPU使用率的方式,您可能希望使用GetProcessAffinityMask()来找出系统有多少个CPU。 dCPU /(dClock * CPUs)是可用的总CPU时间的百分比。 您仍然必须为初始睡眠时间和增量/减量选择一些不可思议的数字,但是我认为可以对该算法进行调整,以使线程在相当接近确定的CPU百分比的情况下运行。 在Linux上,您可以使用nice()更改线程的调度优先级。 问题是在工作时想让CPU空闲是不正常的。通常,您将后台任务设置为" IDLE"优先级,然后让操作系统处理所有交互式任务未使用的CPU时间的调度。 在我看来,问题在于看门狗进程。 如果您的后台任务是CPU密集型的,那么您希望它占用其任务所有未使用的CPU时间。 也许您应该考虑修复看门狗程序? 我无法想到您想要的任何跨平台方式(或任何保证方式的句号),但是当您使用GetTickCount时,您可能对跨平台不感兴趣:) 我将使用进程间通信并为密集的流程设置良好的级别,以获取所需的信息,但是我不确定这是否适合您的情况。
编辑:
您可能可以更改线程的优先级,但是更改最大利用率可能需要轮询和黑客来限制发生的事情数量,或者使用可以设置进程最大利用率的OS工具。 |
最新内容
相关内容
pythonfor循环语句怎么写
pythonfor循环语句怎么写,数据,培训,项目,语句,循环体,实例,教程,时会,字符串,序列,pythonfor循环可以遍历任何序列的项目,如一个列表或者一个python怎么写循环
python怎么写循环,培训,语句,条件,双数,表达式,详解,两者,命令,下面,次数,python中的循环语句,可使用for循环,或者while循环。两者的区别是,forpython创建多线程的两种方法
python创建多线程的两种方法,培训,第一,代码,业务,方法,线程,函数,任务,演示,实例,当我们使用python编程的过程中需要多个输出的任务的话,为了python函数中使用for循环
python函数中使用for循环,培训,函数,内部,都会,实例,以上,更多,内容,python函数中使用for循环1、在for循环中使用函数需要更长的执行时间,因pythonDecimal解决计算问题
pythonDecimal解决计算问题,数据,培训,数字,浮点,类型,问题,结果,字符串,金额,实例,pythonDecimal解决计算问题1、当python中的浮点类型计算python计算集合交集的符号
python计算集合交集的符号,培训,符号,参数,更多,语法,实例,元素,以上,两个,教程,python计算集合交集的符号说明1、可以使用&符号来计算两个或python集合的差集如何计算
python集合的差集如何计算,培训,参数,更多,语法,符号,实例,元素,以上,两个,方法,python集合的差集如何计算说明1、可以使用-符号来计算两个或python计算在月球的体重
python计算在月球的体重,培训,体重,物体,实例,重量,状况,以上,程序,方法,教程,python计算在月球的体重说明1、重量计算,月球上的物体重量为地pythonfor…in循环的使用
pythonfor…in循环的使用,代码,培训,对象,方法,分配,都会,变量,实例,以上,程序,pythonfor…in循环的使用1、说明(1)for-in循环中的变量值由fopython有几种循环遍历的方法?
python有几种循环遍历的方法?,数字,培训,数组,方法,副本,序列,字典,函数,以上,操作,python有几种循环遍历的方法?1、for-in可以用来遍历数组python创建新线程有哪些方法
python创建新线程有哪些方法,培训,方法,线程,对象,测试,实例,以上,参数,教程,更多,python创建新线程有哪些方法1、方法(1)直接创建threading.关于Windows:如何从磁盘获得良好的
关于Windows:如何从磁盘获得良好的并发读取性能,关于Windows:如何从磁盘获得良好的并发读取性能,跟进,自己的,有什么,答案,How to obta