- UID
- 21021
- 帖子
- 98
- 精华
- 0
- 贡献
- 0
- 推广
- 0
- 有效BUG
- 0
- 注册时间
- 2006-9-29
|
6#
发表于 2007-3-11 11:45
| 只看该作者
刚才在地址栏中输入"delphi",TW自动用google.cn开新tab搜索此关键字,然后,cpu从0%升为99%,新tab暂时卡住,大约十秒后,搜索结果出现。
打开process explorer,如下图。
可以看到,cpu主要还是被endthreadex吃掉,随便选中一线程查看,发现Context Switches数量在100,733,176,其它endtheadex线程切换数量也大约在此范围,Start time为10:29:04,cpu异常时时间为11:34。
从以上数据,是什么原因产生cpu突然上升还不好判断,但我感觉TW的多线程处理可以有较大改善。
线程运行时间大约1小时5分钟,即65分钟,3900秒,3,900,000ms
而线程切换数量大大超过3,900,000
我不清楚TW线程的具体实现,也许在线程处理的循环最后加上一句sleep(1)就可以改善这个指标。
当然更好的处理办法是当线程没有活动时,让它Suspend,被前台界面激活或有事件发生时再Resume,这样能让系统资源占用达到最低。当然,这对代码的实现要求高很多。 |
|