佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1045|回复: 3

task manager的CPU问题

[复制链接]
发表于 12-9-2006 04:55 PM | 显示全部楼层 |阅读模式
我用.net做了一个程式,但我run program的时候,我就看task manager里的CPU tab,我发现到数量有是减少有时增加,suppose it become 0 if i din perform any function。我想问问各位有经验的programmer,这是什么原因??要怎样reduce to 0 after i din perform any function when i running the program...thanks
回复

使用道具 举报


ADVERTISEMENT

发表于 13-9-2006 12:05 AM | 显示全部楼层
CPU Tab? 你是说CPU column吗?
这个栏是自前一次刷新以来,程式所占用的CPU時間百分比。我猜想,大概是這樣算的:
-在View | Update Speed是Normal的時候,Task Manager大概每2秒刷新一次。
-若在这2秒间,程式A佔用了1秒,其CPU栏就顯示为50。意即在这2秒间,程式A共用了50%的CPU時間。

程式的任何一个线程(thread),執行任何指令都会佔用CPU時間。一些看似芝麻綠豆的動作,如滑鼠在程式的窗口範圍移動,其實也会執行指令,如處理WM_MouseMove等,從而佔用CPU時間。Garbage Collector清理記憶时会佔用CPU時間,程式所使用的timer在fire的時候也会執行指令。所使用的DLL,也可能有timer或在idle的時候進行一些動作。这一切都会佔用CPU時間。
回复

使用道具 举报

 楼主| 发表于 13-9-2006 08:35 AM | 显示全部楼层
请问要怎样做才能clear cpu usage。我有用garbage collector to flush memory
回复

使用道具 举报

发表于 14-9-2006 11:13 PM | 显示全部楼层
在自動的情況下,garbage collector也只是间中有動作而已。除非你時常手动(比如用
timer)叫它做事。

如果程式在看似沒進行任何功能的當兒仍佔用CPU,你就要檢查程式了,看是否有timer或Application.Idle的event。需注意的是,就算自己写的程式沒有動作,所使用的component仍可能有。另一点就是上面说的,有些表面很無辜的事情其實都会讓沈睡中的程式苏醒,移動程式窗口(程式需處理WM_Move),滑鼠在程式窗口範圍移動(程式需處理WM_MouseMove),其它窗口在程式窗口上移来移去(程式需處理WM_Paint)等等。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 12-11-2024 07:19 AM , Processed in 0.117873 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表