| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1044 人关注过本帖
标题:如何解决循环中的CPU100%?
只看楼主 加入收藏
wonshing
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2006-5-7
收藏
 问题点数:0 回复次数:7 
如何解决循环中的CPU100%?
大家写一般的图形界面下的游戏,游戏过程应该是程序中的一个循环吧,可一进入循环,就出现了CPU占100%现象,好卡,那么我想问的是:怎么样才能使写出来的游戏能象WINDOWS下的游戏一样,使CPU处在低功耗状态?
搜索更多相关主题的帖子: 游戏 
2006-09-24 12:34
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 

朋友,你首先要清楚的是,你在XP下写的DOS程序,其实是跑在XP下的,你那个所谓DOS其实是XP下的虚拟DOS,也就是说并不是真的DOS环境,所以才出现你所说的那个情况,具体内部机制我是不懂,当我知道要实现你说的那样好的效果,让他不卡,我想是很难办到的。

[此贴子已经被作者于2006-9-24 13:47:17编辑过]


个人网站 -  http://.h001.
2006-09-24 13:46
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
因为DOS程序不能像WIN程序那样使用Sleep(0)来暂时交出CPU占用,所以只要你在WIN环境下打开了DOS程序,哪怕这个程序只是等待一个getch()按键,CPU占用都会是满的。这个问题在程序代码上是不好解决的,你可以试试微软的idle.com,在运行自己的DOS.EXE之前运行idle.com,在windows下可以通过一个bat批处理来实现,建立一个BAT文件,输入类似下面内容:
idle.com
xx.exe
假设你的xx.exe是只有一个getch()的程序,他在XP下以DOS窗口的形式打开,直接运行它,可以发现CPU占用率迅速上升到100%,哪怕是将它最小化切换到后台也没用;而使用我们刚才那个批处理打开的xx.exe,由于在它运行之前加载了idle.com,所以运行该BAT的效果是CPU占用率在上去之后几秒种就马上下来了,而且将程序切换到后台就对CPU没什么影响了。
以上效果具体情况与各人的机器也有一定的关系,但毕竟能在一定程序上改善这一问题。
idle.com下载:
NW5PqWK3.rar (517 Bytes)

[此贴子已经被作者于2006-9-25 10:34:23编辑过]

2006-09-25 10:33
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
厉害

个人网站 -  http://.h001.
2006-09-25 17:02
wonshing
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2006-5-7
收藏
得分:0 
多谢两位版主
试了,好象没什么效果,不知道是不是批处理文件的问题,
我是这样写的:
@echo off
idle.com
*.exe
:done
不过我机子的状况是:只要把程序切换到后台,CPU的使用率马上就降下去了


别人笑我太疯癫,我笑他人看不穿 C , ASM , MCU , JAVA , Linux , VHDL , EDA ,PLC
2006-09-25 18:22
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 

批处理没什么问题,这个效果是与机器还有程序本身有一定关系的,在我这边好像要改善大一些

2006-09-26 09:38
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
我晕,游戏运行的时候就是希望最大的占用CPU的,Windows的游戏程序也是如此,这个不必担心。只要你的游戏程序运行流畅就可以了。
2006-09-27 08:55
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
windows下全屏独占模式的游戏是无所谓。不过窗口模式的游戏还是得多少考虑CPU占用问题,譬如有可能我玩的同时还在聊QQ
2006-09-27 09:50
快速回复:如何解决循环中的CPU100%?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019371 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved