首页 > 游戏资讯 > 怎样知道FC,MD,SFC,老式街机基板等老游戏机在运行时,CPU和内存的占用率?

怎样知道FC,MD,SFC,老式街机基板等老游戏机在运行时,CPU和内存的占用率?

2021-01-06 14:36:12  |  来源:互联网

相关资讯

怎样知道FC,MD,SFC,老式街机基板等老游戏机在运行时,CPU和内存的占用率?

答:这些老式游戏机的开发更接近现代的嵌入式开发中单片机部分。按现在的说法叫迭代式结构。加之任务独占,CPU和内存占用率是没有意义的。

迭代式结构是利用程序中的一个死循环,在一次循环内检测所有需要关注的事件,如果该事件发生就执行对应的动作。实现上,可以是直接编写的死循环,也可以是利用硬件Timer产生的具有固定时间间隔的定时器中断来调用。每一次迭代叫做一个tick,所以这种结构也叫tick结构,现代也有叫tick服务器的。 

既然是不断的循环,所以自然可以把CPU全部用满。在电脑上的体现就是把CPU跑到100%。一个tick中的任务比较少的时候,那么每秒迭代次数就会比较多。tick中任务比较多的时候,迭代速度就比较慢。但只要没用定时器中断,CPU就是占满的。

Tick结构这种把CPU用满的方式在PC编程上看起来是很蠢的。但在嵌入式开发中却是一种很有效的方式。首先嵌入式CPU如果用不上抢占式多任务的话,CPU就是交给这一个程序去用,闲着也是闲着。而且相对于每种事件一个硬件中断的方式,tick结构不需要每次发生中断时的保护现场(dump所有寄存器),PC指针跳转,恢复现场等工作。所以在事件检测的实时性和可预测性上是很不错的。 

在一些实时性和安全性要求较高的应用,比如汽车、航天、宇航等领域。每个子任务的时间必须可预测,且迭代时间可预测。反之中断同时发生、嵌套发生时,响应时间难以预测。所以这些领域的tick结构是很常见的。

内存方面,也是因为通常是独占式任务,连OS都没有。所以嵌入式系统的常见做法是程序启动时就把自己想要用的内存全都分配了,将这些数据都保存为全局变量。这样的结果是程序一启动就基本占满了所有内存,但后续的运行就不会有麻烦的内存申请/释放操作。节省了内存申请/释放带来的CPU占用,而且存储管理本身也是个时间复杂度非线性的功能。 

嵌入式开发,包括这些稍微古老的游戏机程序开发。在一开始就有硬件规范,开发者知道CPU的速度,总的内存大小。所以开发中都是倾向于尽量占满CPU和内存,以换取效率的提高。所以可以认为是CPU和内存都是占满的。

相关文章:

分享到:

最新文章

更多

电脑版 | 关于我们 | 联系我们 | 游戏合作 | 返回顶部

Copyright©2014 66game.com

联系邮箱:www66gamecn@163.com

闽ICP备2023013587号-1 Copyright©2019-2020 66game.cn 66街机网