程序开发性能调优之如何降低CPU使用率。

单核的CUP就100%!双核的就60%!这谁受的了。咋调都不行。我把所有的效果都关了,还不行!连声音都关了,就剩个窗口模式了!他照样100%!咋整啊?
改用静态的方式的确是能够大大降低数据库的存取频率,进而降低CPU的使用率.
依你所表述的情况来看,应该是你的ASP+ACCESS的代码不是最优化的问题,不过具体怎么优化我也不知道.因为你动态的数据库,每次访问,查看某一条新闻,就要存取一次数据库,这样无疑对你的虚拟主机是一种负荷...每天
日流量150左右估计都应付不过来:)
 
是否意味40%以下就算正常呢?
 
我发现在循环中加入适当延迟。可以大幅降低CPU使用。
http://jingyan.baidu.com/article/a3761b2b6168151576f9aac7.html
   CPU使用率其实就是你运行的程序占用的CPU资源,表示你的机器在某个时间点的运行程序的情况。使用率越高,说明你的机器在这个时间上运行了很多程序,反之较少。使用率的高低与你的CPU强弱有直接关系。现代分时多任务操作系统对 CPU 都是分时间片使用的:比如A进程占用10ms,然后B进程占用30ms,然后空闲60ms,再又是A进程占10ms,B进程占30ms,空闲60ms;如果在一段时间内都是如此,那么这段时间内的占用率为40%。CPU对线程的响应并不是连续的,通常会在一段时间后自动中断线程。未响应的线程增加,就会不断加大CPU的占用。

       那么该如何降低程序CPU使用率呢?下面跟着我一起操作吧!

怎样降低某程序cpu使用率?

工具/原料

  • 任务管理器

  • CPU使用率

  • ​CMD命令行

方法/步骤

  1. 我们可以通过减少开机启动项来减少CPU使用率:

    点击开始,运行CMD命令行,敲入msconfig,点击启动,关闭不必要的启动项,重启即可生效,(通常情况下,修改启动项对启动时间影响比较大,而对CPU使用的情况,也一般只是在开机影响比较大。)

    怎样降低某程序cpu使用率?
  2. CPU使用率占用过高时:我们可以通过查看“svchost”进程来了解使用率过高的原因。

    svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。

    怎样降低某程序cpu使用率?
  3. 鼠标右键也可能会引起CPU占用100%(出现征兆):

      在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题:

      任何文件的拷贝操作在那个时间将有可能停止响应

      网络连接速度将显著性的降低

      所有的流输入/输出操作例如使用Windows Media Player听音乐将有可能是音乐失真成因:

      当你在资源管理器里面右键点击一个文件或目录的时候,当快捷菜单显示的时候,CPU占用率将增加到100%,当你关闭快捷菜单的时候才返回正常水平。

    怎样降低某程序cpu使用率?
  4. 解决方法很简单,关闭“为菜单和工具提示使用过渡效果”即可:

    点击“开始”--“控制面板”,在“控制面板”里面双击“显示”,在“显示”属性里面点击“外观”标签页,在“外观”标签页里面点击“效果”,在“效果”对话框里面,清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮。

    另一种方法是:在使用鼠标右键点击文件或目录的时候先使用鼠标左键选择你的目标文件或目录。然后再使用鼠标右键弹出快捷菜单。

    怎样降低某程序cpu使用率?
  5. 默认安装完Windows 系统后,系统会开启很多服务,其中不少对于普通用户根本用不到或暂时用不到,反而浪费了相当多的内存和系统资源,特别是内存,影响了系统启动和运行的速度。

    禁止所有不必要的服务可以为您节省n多的内存和大量系统资源.

    在 “开始” 的 “运行” 中 输入: services.msc

    怎样降低某程序cpu使用率?
  6. 进入系统自带服务修改列表 可以选择关闭,手动,还是自动: 默认设置是跟windows一起启动。 手动为需要时它自行启动。 关闭为永远不启动。

    怎样降低某程序cpu使用率?
  7. 查看网络连接(网卡原因):

    当安装了Windows XP的计算机做服务器的时候,收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候,CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太多系统资源。

    怎样降低某程序cpu使用率?
  8. 要解决此问题,我们可以通过修改注册表来解决:在注册表编辑器中依次展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver ]分支,在右侧窗口中新建一个名为“maxworkitems”的DWORD值。然后双击该值,在打开的窗口中键入下列数值并保存退出:

    如果计算机有512MB以上的内存,键入“1024”;如果计算机内存小于512 MB,键入“256”。

    怎样降低某程序cpu使用率?
  9. 忘了提醒大家,那么该如何进入注册表呢?接着下图中的第三个命令,首先还是找到电脑中的命令行,然后敲入regedit即可,如下图所示:

    怎样降低某程序cpu使用率?
  10. 还有些诸于驱动,病毒类的原因,大家可以尝试着自己解决,这类原因安装官方驱动,使用杀毒软件即可解决,这里不做獒述!

    驱动没有经过认证大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因

    计算机病毒在系统内部迅速复制,造成CPU占用资源率据高不下,使用杀毒软件查杀即可。

    如果驱动出现问题,大家可以在设备管理器中查看。

    怎样降低某程序cpu使用率?
用多线程,大家有没有注意到CPU的使用率 使用多线程的脚本,即使是打开一个记事本往里面输入字母这种简单的脚本 CPU占用率都能达到90%以上 我的CPU,E7200,酷睿双核2.54GHZ 如此高的CPU占用率,即使写出了脚本,也没办法使用 不知大家是否也如此~~
 
3开3线程,表示没感觉到卡。。。原来我习惯所有动作后面都加延时
 
单线程写个    while(1)        ; 就能100%了,多个线程每个都可能阻塞的话,最终也未必会100%
 
老生常谈了,在线程处理代码中加sleep,必须要加的,否则不只是cpu100%的问题,还会有其他问题。
 
线程循环中添加Sleep(1或10等适当数值)
 
如果要一直执行的话就是要死循环的,死循环当然就会100%占用CPU,因为你的线程一直在工作啊,CPU根本空闲不下来,所以,再循环体中加上sleep(1);这样的话,就会在循环的过程中暂时的释放CPU资源,当然为了防止失去响应还要加上application.ProcessMessages;
线程本身就是一个循环 不延时一直在那里运行的
 
按照你说的我感觉是你的sleep放的位置不对。你是不是把sleep放在画canvas 的循环里面了? 大致步骤如下 begin   读串口数据;   画Canvas;   Sleep(0); end;
 
 

Semaphore 类

semaphore  [ 'seməfɔ:]  
n.信号灯, 旗语
v.发出信号或旗语

限制可同时访问某一资源或资源池的线程数。

退出信号量并返回前一个计数。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值