教你玩转CPU——控制CPU占用率曲线
- 格式:doc
- 大小:44.00 KB
- 文档页数:5
降低cpu占用率的方法
1.关闭不必要的程序和进程:在任务管理器中查看哪些程序和进程占用了大量的CPU资源,把不必要的关闭即可。
2. 检查病毒和恶意软件:病毒和恶意软件可能会导致CPU占用率过高,建议使用杀毒软件和防火墙进行检查和防护。
3. 更新和优化驱动程序:过时的驱动程序可能会导致CPU占用率过高,建议定期更新和优化驱动程序。
4. 调整系统性能选项:在控制面板中调整系统性能选项,可以降低一些不必要的特效和动画效果,从而减少CPU的负担。
5. 禁用不必要的服务:在服务管理器中禁用一些不必要的服务,可以减少CPU的负担。
6. 升级硬件配置:如果CPU占用率一直很高,可能是由于硬件配置不足导致,建议升级硬件配置。
7. 清理系统垃圾和优化系统:使用系统优化软件可以清理系统垃圾和优化系统,从而减少CPU的负担。
- 1 -。
cpu占用率高怎么解决_cpu占用率高解决方法cpu占用率高怎么解决?CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。
一起来看看cpu占用率高怎么解决,欢迎查阅!CPU占用率高解决方法1、安装的某个软件所致你去看下任务管理器里的什么软件占用CPU过高,例如鲁大师,将其关闭,无用的软件可以卸载。
2、后台软件开的太多导致或者后台软件开的太多,请及时关闭不用的软件。
可能在开机的时候,很多软件都开机自启,也没有关闭,我们可以禁用开机自启的软件。
任务管理器也可以使用Ctrt + Alt + del组合键打开,将所有的第三方软件在启动选项中禁用了,这些软件就不会在开机之后自动启动打开了,我们重新启动电脑,来看看CPU占用情况。
3、后台更新系统导致windows10后台自动更新会占用内存、CPU资源,所以我们建议将系统自动更新关闭,如果需要更新的时候再将其打开。
首先我们右键点击“此电脑”,选择“管理”,再打开服务和应用程序→服务,然后找到一个WINDOWS update并双击打开,启动类型里面选择禁用,然后在恢复选项“第一,第二次失败都选择无操作”。
4、Win10系统关闭defender首先右键“开始”菜单按钮,点击“运行”,输入“gpedit.msc”,打开“本地组策略编辑器”,依次选择“计算机配置”-“管理模板”-“Windows组件”-“Windows Defender防病毒程序”。
找到“关闭Windows Defender防病毒程序”选项,右键“编辑“,选择“已启用”,将Windows Defender,确定即可。
5、可能是中毒导致的木马病毒等恶意程序可能在后台偷偷耗尽你的电脑资源,我们可以尝试使用杀毒软件对电脑进行全盘扫描,查看电脑中是否有隐藏的恶意程序。
6、搜索助手小娜Cortana(SearchUI.exe)所致在1903版本的更新中,搜索助手小娜SearchUI.exe出现了BUG,即便你禁用Cortana,SearchUI.exe进程依然会运行,但平常都是默默待在后台,用户根本不会察觉。
电脑怎么减少cpu占用率提高运行速度
推荐文章
电脑优化内存的方法热度:win7系统怎么关闭运行程序扩大CPU内存热度:什么是三个宇宙速度热度:如何防止别人蹭我们的网热度:经济运行会议讲话热度:
提高电脑运行速度,我们可以通过减少电脑cpu占用率来解决,下面是店铺为大家介绍电脑减少cpu占用率提高运行速度的方法,欢迎大家阅读。
电脑减少cpu占用率提高运行速度的方法
看着电脑上cpu占用率达到90%以上,而直接显示了电脑都要跑不动了。
有人说是硬件的问题,但是本人的电脑是在正规店铺刚买没多久的,显然这个说法可以直接pass。
到底如何减少cpu占用,提高运行速度呢。
首先我们可右击电脑左下方的“开始”菜单中“运行”项,输入字母串“msconfig”,显示如下图所示,点击确定。
在2步骤的基础上,打开如下图所示的“系统设置”。
选择“系统设置”下的“服务”项,在下面的“隐藏所有的Microsoft服务(H)”前面打勾,并且选择“全部禁用”,点击“应用”及“确定”。
重启电脑之后,可以明显看到cpu占用率直接降下来了。
除此之外,还可以通过“一键加速”和“一键清理”等来提高电脑速度和清理不必要的文件。
还可以通过“控制面板”里的“程序和功能”来卸载一些不常用的软件。
总之,上述方法可使自己的电脑提高运行速度。
CPU利用率范围1. 什么是CPU利用率?CPU(中央处理器)是计算机中最重要的组件之一,它负责执行所有的计算任务。
CPU利用率是指CPU在一定时间内执行任务的比例,通常以百分比表示。
CPU利用率的范围可以从0%到100%不等,表示CPU的使用程度。
2. CPU利用率的计算方法CPU利用率的计算方法可以根据不同的操作系统和工具而有所不同。
下面介绍几种常见的计算方法。
2.1. Windows系统在Windows系统中,可以使用任务管理器来查看CPU利用率。
打开任务管理器后,可以在“性能”选项卡中看到当前的CPU利用率。
Windows系统的CPU利用率是根据一定时间内CPU处于忙碌状态的时间比例计算得出的。
2.2. Linux系统在Linux系统中,可以使用top命令来查看CPU利用率。
在终端中输入top命令后,可以看到一个实时更新的系统状态界面,其中包括CPU利用率的信息。
Linux系统的CPU利用率是根据一定时间内CPU处于忙碌状态的时间比例计算得出的。
2.3. 跨平台工具除了操作系统提供的工具外,还有一些跨平台的工具可以用来查看CPU利用率,例如htop、GKrellM等。
这些工具可以在不同的操作系统上使用,并提供更加详细的CPU利用率信息。
3. CPU利用率范围CPU利用率的范围可以从0%到100%不等,表示CPU的使用程度。
下面介绍不同范围的CPU利用率所代表的含义。
3.1. 0% - 10%当CPU利用率在0%到10%之间时,表示CPU几乎没有被使用。
这种情况下,系统的负载非常低,CPU基本处于空闲状态。
3.2. 10% - 50%当CPU利用率在10%到50%之间时,表示CPU被轻度使用。
这种情况下,系统的负载较低,CPU主要用于处理一些轻量级的任务。
3.3. 50% - 80%当CPU利用率在50%到80%之间时,表示CPU被中度使用。
这种情况下,系统的负载较高,CPU主要用于处理一些中等复杂度的任务。
cpulimit 函数
cpulimit是一个用于限制进程CPU使用率的工具。它可以通过
设置进程的CPU使用率上限来避免某些进程占用过多的CPU资源,
从而影响系统的整体性能。cpulimit的基本用法是在命令行中指定
要限制的进程的PID以及期望的CPU使用率上限。
该函数的基本语法为:
cpulimit [options] target.
其中,target可以是要限制的进程的PID或命令名称。
cpulimit还支持一些选项,例如-l用于指定CPU使用率的上限,-p
用于指定要限制的进程的PID,-e用于指定要限制的进程的命令名
称等。
通过使用cpulimit函数,用户可以有效地控制特定进程的CPU
使用率,避免因某些进程的过高CPU占用导致系统响应变慢甚至崩
溃的情况。这在一些需要长时间运行的后台进程或者需要同时运行
多个CPU密集型任务的场景下尤为重要。
需要注意的是,虽然cpulimit可以限制进程的CPU使用率,但
它并不能解决所有与CPU资源管理相关的问题。在实际使用中,还
需要综合考虑系统的整体负载情况,合理规划进程的优先级和资源
分配,以达到最佳的系统性能和资源利用率。
总之,cpulimit函数是一个实用的工具,可以帮助用户在需要
时限制特定进程的CPU使用率,从而提高系统的稳定性和可靠性。
希望这个回答能够全面解答你关于cpulimit函数的问题。
Linux控制CPU使⽤率曾经看过《编程之美》上提到说使 CPU的使⽤率固定在百分之多少。
然后这次刚好要⽤到这个东西,下⾯是⼀个简单的实现。
基于多线程:Linux 版本:1 #include <iostream>2 #include <pthread.h>3 #include <time.h>4 #include <math.h>56using namespace std;78 typedef long long int int64;9const int NUM_THREADS = 24; // CPU 核数10int eachTime = 100;11int cpuinfo = 0; // 占⽤率1213 int64 GetTickCount()14 {15 timespec now;16 clock_gettime(CLOCK_MONOTONIC, &now);17 int64 sec = _sec;18 int64 nsec = _nsec;19return sec*1000 + nsec/1000000;20 }212223void* CPUCost(void *args)24 {25 std::cout << "XXXX CPUCost" << std::endl;26int busyTime = eachTime * cpuinfo / 100;27 //std::cout << "XXXX cpuinfo = " << cpuinfo << std::endl;28int idleTime = eachTime - busyTime;29 int64 startTime = 0;30while (true)31 {32 startTime = GetTickCount();33while((GetTickCount() - startTime) <= busyTime)34 {35 ;36 }3738 usleep(100);39 }40 }41424344int main(int argc, char **argv)45 {46 std::cin >> cpuinfo;47 pthread_t t[NUM_THREADS];48for(int i = 0; i < NUM_THREADS; i++)49 {50int ret = pthread_create(&t[i], NULL, CPUCost, NULL);51if(ret)52 {53 std::cout << "XXXX create err" << std::endl;54 }55 }5657 pthread_exit(NULL);585960return0;61 }编译⽅式: g++ -lpthread -lrt -o testCPU注:因为只是⽤来测试,所以写的很粗糙。
CPU占用率高的解决方法当计算机的CPU占用率过高时,系统的运行速度会变慢,而且可能会导致计算机崩溃或出现其他问题。
因此,解决CPU占用率过高的问题非常重要。
下面是一些可能的解决方法:1. 关闭不必要的后台进程和应用程序:通过任务管理器查看正在运行的进程和应用程序,并关闭那些不需要的或占用大量 CPU 资源的程序。
可以按下 Ctrl + Shift + Esc 组合键来唤起任务管理器,并在“进程”或“详细信息”选项卡中查看进程。
2. 更新操作系统和驱动程序:确保计算机上的操作系统和驱动程序都是最新的。
新版本通常会修复一些已知的 bug 或性能问题,并提供更好的性能。
3.执行病毒和恶意软件扫描:运行杀毒软件或安全软件进行全面的系统扫描,可能会发现恶意软件或病毒并将其删除。
恶意软件或病毒可能会导致CPU占用率过高,因此及时清除它们非常重要。
4.清理系统垃圾和临时文件:定期清理系统垃圾和临时文件可以释放硬盘空间,提高系统性能并减少CPU占用率。
可以使用系统自带的磁盘清理工具或第三方软件来完成此任务。
5.检查硬件问题:检查计算机硬件是否存在问题,例如过热或风扇故障等。
过热可以导致CPU占用率过高,因此确保计算机的散热系统正常工作,并保持通风良好。
6.减少启动项:通过禁用不必要的启动项可以加快计算机启动速度并降低CPU占用率。
可以使用任务管理器或系统配置实用程序来管理启动项。
7.调整系统性能设置:调整系统性能设置可以减少CPU的负荷。
可以通过以下方式进行调整:-提高虚拟内存:增大虚拟内存可以缓解物理内存不足的情况,从而减少CPU的负荷。
可以通过更改计算机的虚拟内存设置来实现。
-禁用视觉效果:禁用一些视觉效果可以减少CPU占用率,可以在系统属性的高级设置中进行调整。
-调整电源选项:将计算机的电源选项设置为高性能模式,可以确保CPU以最高速度运行,从而提高系统性能。
8.更新或更换硬件:如果以上方法无法解决问题,可能需要考虑更新或更换一些硬件组件,例如添加更多内存、更换旧的硬盘或升级CPU。
CPU使用率高怎么办CPU使用率过高的解决办法方法一:查找和结束占用CPU资源的进程1. 打开任务管理器:按下Ctrl + Shift + Esc打开任务管理器。
2.查看进程列表:在任务管理器中,切换到“进程”选项卡,并按照“CPU”一列进行排序,查找CPU使用率高的进程。
3.结束进程:选中占用CPU资源高的进程,然后点击“结束任务”按钮。
4.观察进程是否消失:等待一段时间后,观察CPU使用率是否下降,如果下降说明问题解决,否则可能还有其他的进程需要处理。
方法二:禁用或卸载不必要的启动项和服务1. 打开任务管理器:按下Ctrl + Shift + Esc打开任务管理器。
2.切换到“启动”选项卡:在任务管理器中,切换到“启动”选项卡,列出系统开机自启动的程序。
3.禁用启动项:对于一些不必要的启动项,右键点击它们并选择“禁用”。
禁用后,这些程序将不再在系统启动时自动运行。
4.卸载不必要的软件:对于一些不常用或不需要的软件,打开控制面板,选择“卸载程序”并卸载这些软件。
方法三:更新驱动程序1. 打开设备管理器:按下Win + X键,并选择“设备管理器”。
2.更新驱动程序:展开各个硬件类别,右键点击需要更新的驱动程序,选择“更新驱动程序”。
3.自动更新:选择“自动更新的驱动程序软件”。
方法四:优化系统性能1.关闭不必要的后台进程:使用任务管理器关闭一些不需要运行的后台进程。
2.减少开机启动项:打开任务管理器,选择“启动”选项卡,并禁用一些不常用的启动项。
3.清理硬盘空间:删除不必要的文件和程序,使用磁盘清理和磁盘碎片整理工具进行清理。
4. 更新操作系统和应用程序:通过Windows Update更新操作系统,并更新各种应用程序到最新版本。
5.定期使用杀毒软件进行全盘扫描:使用可靠的杀毒软件对系统进行全盘扫描,以确保系统没有受到恶意软件的感染。
方法五:升级硬件如果以上方法都无法解决CPU使用率过高的问题,可能是由于硬件的性能不足所致。
cpu使用率忽高忽低是怎么回事?【附解决方法】cpu使用率忽高忽低的情况,这个几乎是每个接触电脑的朋友都有可能会碰到的,引起cpu使用率高怎么办的原因主要是因为CPU温度过高,病毒感染了系统文件,结合我对电脑多年使用的了解以及协助别人处理故障而总结的四点方法,希望能够帮助到大家~故障描述:电脑已经运行了一段时间,没运行什么大型软件,电脑忽然飙高到100%, 一会儿才降下来不过,我以为正常了,但是却让人意想不到的是,它过一会又飙到70%左右,而以前没开什么开程序时,CPU一直都是在20%以下cpu使用率忽高忽低原因:1、当机器慢下来的时候,首先我们想到的当然是任务管理器了,看看到底是哪个程序占了较高的比例,如果是某个大程序那还可以原谅,在关闭该程序后只要CPU正常了那就没问题;如果不是,那你就要看看是什么程序了,当你察不出这个进程是什么的时候就去google或者baidu搜。
有时只结束是没用的,在xp下我们可以结合msconfig里的启动项,把一些不用的项给关掉。
在2000下可以去下个winpatrol来用。
2、一些常用的软件,比如浏览器占用了很高的CPU,那么就要升级该软件或者干脆用别的同类软件代替,有时软件和系统会有点不兼容,当然我们可以试下xp系统下给我们的那个兼容项,右键点该.exe文件选兼容性。
3、svchost.exe有时是比较头痛的,当你看到你的某个svchost.exe占用很大CPU时你可以去下个aports或者fport来检察其对应的程序路径,也就是什么东西在调用这个svchost.exe,如果不是c:Windowssystem32(xp)或c:winntsystem32(2000)下的,那就可疑。
升级杀毒软件杀毒吧。
4、右击文件导致100%的CPU占用我们也会遇到,有时点右键停顿可能就是这个问题了。
官方的解释:先点左键选中,再右键(不是很理解)。
非官方:通过在桌面点右键-属性-外观-效果,取消”为菜单和工具提示使用下列过度效果(U)“来解决。
cpu占用率计算原理摘要:I.引言- 介绍CPU 占用率的概念II.CPU 占用率计算原理- 解析CPU 占用率计算公式- 阐述CPU 占用率与CPU 使用率、CPU 负载的区别III.影响CPU 占用率的因素- 分析影响CPU 占用率的硬件因素- 分析影响CPU 占用率的软件因素IV.如何合理控制CPU 占用率- 硬件方面的优化措施- 软件方面的优化措施V.总结- 概括CPU 占用率计算原理的重要性正文:I.引言在计算机性能测试和性能优化中,CPU 占用率是一个重要的指标。
它反映了CPU 在执行任务时的使用情况,对于评估计算机性能和找出性能瓶颈具有重要意义。
本文将介绍CPU 占用率的概念以及计算原理。
II.CPU 占用率计算原理CPU 占用率是指CPU 在执行任务时所占用的时间比例,通常用百分比表示。
它的计算公式为:CPU 占用率= CPU 使用时间/ 总时间。
其中,CPU 使用时间是指CPU 执行任务的时间,总时间是指系统运行的时间。
需要注意的是,CPU 占用率并不等于CPU 使用率。
CPU 使用率是指CPU 执行任务的数量,而CPU 占用率是指CPU 执行任务所占用的时间比例。
此外,CPU 负载是指CPU 需要处理的任务数量,与CPU 占用率和CPU 使用率有所区别。
III.影响CPU 占用率的因素CPU 占用率受到多种因素的影响,包括硬件因素和软件因素。
1.硬件因素:CPU 的主频、核心数量、缓存大小等硬件参数会影响CPU 的性能,进而影响CPU 占用率。
此外,其他硬件设备,如内存、硬盘等,也会对CPU 占用率产生影响。
2.软件因素:操作系统、应用程序和驱动程序等软件因素会影响CPU 占用率。
例如,病毒、恶意软件可能导致CPU 占用率异常高;某些应用程序可能存在性能问题,导致CPU 占用率居高不下。
IV.如何合理控制CPU 占用率要合理控制CPU 占用率,需要从硬件和软件两方面进行优化。
教你玩转CPU----随心所欲控制CPU占用率曲线走向 我想大家都知道电脑的任务管理器里面有个CPU占用率曲线吧,他根据系统使用资源的不同实时显示,那能不能使这个曲线按照自己的思想显示呢,如使他一直保持一个固定的值,如50%,或者正弦曲线,听起来好像很难,但如果是让你用C、C++或java等语言写一个最简短的程序,你会不会觉得更难呢,不错,这曾经是微软亚洲研究院(Microsoft Research Asia,MSRA)的一道面试题,据说这道题就淘汰了当批接受面试的85%的人,他的原题如下:
1、CPU的占用率固定为50%,为一条直线; 2、CPU的占用率为一条直线,但是具体占用率由命令行参数决定(参数范围1~100); 3、CPU的占用率状态是一个正弦曲线。 看来这并不是不可能完成的任务。然我们仔细回想一下写程序时曾经碰到的问题,如果我们不小心写了一个死循环,CPU占用率就会跳到最高,并且一直保持100%。我们也可以打开任务管理器,实际观测一下它是怎样变动的。凭肉眼观察,它大约是每一秒钟更新一次。一般情况下,CPU的占用率很低。但是当用户运行一个程序时,执行一些复杂的操作时,CPU的使用率会急剧增加。当用户鼠标晃动时,CPU的使用率也会有小幅度的变化。
那么当任务管理器报告CPU的使用率为0的时候,谁在使用CPU呢?通过任务管理器的“进程(Process)”一栏可以看到,System Idle Process占用了CPU空闲的时间----这时候大家该回忆起在“操作系统原理”这门课上学到的一些知识了吧。系统中有那么多的进程,他们什么时候能“闲下来”呢?答案很简单,这些程序在等待用户的输入,或者在等待某些事件的发生,或者主动进入休眠状态。
在任务管理器的一个刷新周期内,CPU忙(执行应用程序)的时间和刷新周期总时间的比率,就是CPU的占用率,也就是说,任务管理器显示的是每个刷新周期内CPU占用率的统计平均值。因此,我们写了一个程序,让他在任务管理器的刷新期内一会儿忙,一会儿闲,然后通过调节忙\闲比例,就可以控制任务管理器中显示的CPU占用率。
要操纵CPU的使用率曲线,就需要使CPU在一段时间内(更具Task Manager的采样率)跑busy和idle两个不同的循环(loop),从而通过不同的时间比例,来调节CPU使用率。
busy loop可以通过执行空循环来实现,idle可以通过Sleep()实现。 问题的关键在于如何控制两个loop时间,我们先实验一下Sleep一段时间,然后循环n次,估算n的值。
那么对于一个空循环 for(i=0;i道CPU执行的是机器指令,而最接近机器指令的语言是汇编语言,所以我们可以先把这个空循环简单的写成如下汇编代码后再进行分析:
loop: mov dx i ;将i置入dx寄存器 inc dx ;将dx寄存器加1 mov i dx ;将dx中的值赋回i cmp i n ;比较i和n j1 loop ;1小于n时则重复循环 假设这段代码要运行的CPU是P4 2.4GHz(2.4*10的9次方个时钟周期每秒)。现代CPU每个时钟周期可以执行两条以上的代码,呢么我们就取平均值两条,于是让(2400 000 000*2)/5=960 000 000(循环/秒),也就是说CPU1秒钟可以运行这个空循环960 000 000次。不过我们还是不能简单的将n=960 000 000,然后Sleep(1000)了事。如果我们让CPU工作1秒钟,然后休息1秒钟,波形很可能就是锯齿状的----先达到一个峰值(>50%),然后跌倒一个很低的占用率。
我们尝试降低两个数量级,令n=960 0000而睡眠时间相应改为10毫秒(Sleep(10))。用10毫秒是因为它不大也不小,比较接近Windows的调度时间片。如果选得太小(比如1毫秒),则会造成线程频繁的被唤醒和挂起,无形中友增加了内核时间的不确定性影响。最后我们得到如下代码:
int main() { for(; ; ) { for(int i = 0; i < 9600000; i++) ; Sleep(10); } return 0; } 在VC中用Sleep前面要加上#include "windows.h",在不断调整9600000的参数后,我们就可以在一台指定的机器上获得一条大致稳定50%CPU占用率曲线 使用这种方法要注意两点影响: 1、尽量减少sleep/awake的频率,减少操作系统内核调度程序的干扰。 2、尽量不要调用system call (比如I/O这些privilege instruction),因为它也会导致很多不可控的内核运行时间。 3、上面的程序是针对单核CPU的,如果是多核CPU,那么CPU占用率曲线有好几个,如果自定义指定哪个或哪几个显示呢, 可以在 for(; ; )前面加上SetProcessAffinityMask()函数, BOOL SetProcessAffinityMask(HANDLE hProcess, DWORD_PTR dwProcessAffinityMask);
第一个参数用来指定指定哪个进程,传入它的句柄。第二个进程用来指定哪个CPU核心来执行此进程。 DWORD_PTR,其实就是unsigned long*.Unsigned long type for pointer precision.Use when casting a pointer to a long type to perform pointer arithmetic.(Also commonly used for general 32-bit parameters that have been extended to 64 bits in 64-bit windows.)
DWORD 其实就是unsigned long。Windows下常用来保存地址或存放指针。 比如这样调用函数: ::SetProcessAffinityMask(::GetCurrentProcess(),0x1);可以指定当前执行的进程在第一个CPU上运行(00000001)。对于双核CPU,
::SetProcessAffinityMask(::GetCurrentProcess(),0x2);可以指定在第二个CPU上运行。(00000010)
::SetProcessAffinityMask(::GetCurrentProcess(),0x3);可以允许在两个CPU上任意运行。(000000011)
::SetProcessAffinityMask(::GetCurrentProcess(),0x3);可以允许在第三个CPU上任意运行。(000000100)
::SetProcessAffinityMask(::GetCurrentProcess(),0x3);可以允许在第一个和第三个CPU上任意运行。(00000101)
以此类推。。。 该方法的缺点很明显:不能适应机器的差异性。一旦换了一个CPU,我们又得重新估算n值。有没有方法动态的了解CPU的运算能力,然后自动调节忙/闲的时间比呢? 当然可以,我们知道GetTickCount()可以得到“系统启动到现在”所经历的时间的毫秒值。我们可以利用GetTickCount()来判断busy要循环多久,核心代码如下: int busyTime = 10; // 10 ms int idleTime = busyTime; // same ratio will lead to 50% cpu usage Int64 startTime = 0; while(true) { startTime = GetTickCount(); // busy loop while((GetTickCount() - startTime) <= busyTime) ; // idle loop Sleep(idleTime); } 这两种解法都是假设目前系统上只有当前程序在运行,但实际上,操作系统中有很多程序会同时执行各种各样的任务,如果此刻其他进程使用了10%的CPU,那我们的程序应该只能使用40%的CPU,这样才能达到50%的效果。 这要怎么做呢?这就要用到另一个工具来帮忙-----Prefmon.exe Perfmon是从Windows NT开始就包含在Windows管理工具中的专业检测工具之一。Perfmon可获取有关操作系统、应用程序和硬件的各种效能计数器(perfcounter)。Perfmon的用法相当直接,只要选择你所要检测的对象(比如:处理器、RAM或硬盘),然后选择效能计数器(比如监视物理磁盘的平均队列长度)即可。我们可以写程序来查询Perfmon的值,Microsoft .NET Framework提供了PerformanceCounter这一对象,可以方便的得到当前各种性能数据,包括CPU的使用率。例如下面这个程序
// C# code static void MakeUsage(float level) { PerformanceCounter p = new PerformanceCounter("Processor", "%Processor Time", "_Total"); if(p==NULL) { return } while(true) { if(p.NextValue() > level) System.Threading.Thread.Sleep(10); } } 有了前面的积累,我们应该可以让任务管理器画出优美的正弦曲线了,见下面的代码。 // C++ code to make task manager generate sine graph #include "Windows.h" #include "stdlib.h"