以对象方式管理大量不同频率闪烁灯的思路及接口继承的性能(VB6.0代码)
作者:admin 日期:2011-10-13
在CSDN中的 这个帖子 见到此需求,就想了一个思路,并实现了一下,效果还行
主体思路:
每个闪烁灯作为一个对象管理,拥有两种颜色,并且两种颜色及显示的时间均可设置.
然后在每次更新绘图区域时检查当前颜色显示的时间,如果已大于设定的时间,则显示另一种颜色.
这样的话能极大简化代码,并结构清晰,易于维护.
而为了大量对象调用时的效率问题,采用了接口继承,那么主对象存储数组就不需要是集合了,而是一个确定的接口.
并且这种方式只要接口设计得好,就可以让功能扩展非常容易,并且合作开发也很好办了,按接口填实现代码即可
经测试,使用继承后性能提高是很明显的,在我的机器上,显示1000个对象时集合版本的EXE只能达到22的FPS,而继承版本的EXE能达到33的FPS.
当然使用API进行绘图能提升绘图的效率,不过这不是这个思路的重点了,嘿嘿
把两个工程都上传上来,记录一下吧:
.
点击下载此文件

主体思路:
每个闪烁灯作为一个对象管理,拥有两种颜色,并且两种颜色及显示的时间均可设置.
然后在每次更新绘图区域时检查当前颜色显示的时间,如果已大于设定的时间,则显示另一种颜色.
这样的话能极大简化代码,并结构清晰,易于维护.
而为了大量对象调用时的效率问题,采用了接口继承,那么主对象存储数组就不需要是集合了,而是一个确定的接口.
并且这种方式只要接口设计得好,就可以让功能扩展非常容易,并且合作开发也很好办了,按接口填实现代码即可

经测试,使用继承后性能提高是很明显的,在我的机器上,显示1000个对象时集合版本的EXE只能达到22的FPS,而继承版本的EXE能达到33的FPS.
当然使用API进行绘图能提升绘图的效率,不过这不是这个思路的重点了,嘿嘿

把两个工程都上传上来,记录一下吧:
.

评论: 0 | 引用: 0 | 查看次数: 252