游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3080|回复: 7

用类封装后每帧处理时间增加了0.5ms,是因为类的存取速

[复制链接]

45

主题

181

帖子

181

积分

注册会员

Rank: 2

积分
181
发表于 2005-5-26 21:59:00 | 显示全部楼层 |阅读模式
本来我的demo是没有使用面向对象的,今天全部重写,封装到类里,发现帧数由220降低到了200,每帧处理时间增加了0.5ms,到底是什么原因?

42

主题

418

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
发表于 2005-5-27 09:14:00 | 显示全部楼层

Re:用类封装后每帧处理时间增加了0.5ms,是因为类的存取

正常。从性能上看,类的确比全局变量要慢,但面向对象的思想能让你在设计上变得更清晰,站在设计的高度做出更高效的程序,所以最终两者做出来的程序性能相差不大。

26

主题

324

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
QQ
发表于 2005-5-27 14:23:00 | 显示全部楼层

Re:用类封装后每帧处理时间增加了0.5ms,是因为类的存取

理论上有些类会,有些类不会,做游戏用到的类一样都会啦

9

主题

266

帖子

266

积分

中级会员

Rank: 3Rank: 3

积分
266
发表于 2005-5-27 23:15:00 | 显示全部楼层

Re:用类封装后每帧处理时间增加了0.5ms,是因为类的存取

设置下VC的代码生成选项,
注意下C++的内联和虚函数。(更多方法可以参考C++优化的书)

或许你这个0.5MS可以补回来。如果确实很重要的话。

运行效率和开发、维护效率中选择一个平衡点,一个好的架构可以让你能更快地在新硬件环境下更快得提高运行效率。

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2005-5-28 09:21:00 | 显示全部楼层

Re:用类封装后每帧处理时间增加了0.5ms,是因为类的存取

楼上的说的有理 , 我觉得只要用一下对象封装就行了 , 涉及到虚的东西还是少用 , 另外内联也不错

22

主题

143

帖子

147

积分

注册会员

Rank: 2

积分
147
发表于 2005-5-28 11:39:00 | 显示全部楼层

Re:用类封装后每帧处理时间增加了0.5ms,是因为类的存取

可能用虚函数过多吧!

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2005-5-28 14:54:00 | 显示全部楼层

Re:用类封装后每帧处理时间增加了0.5ms,是因为类的存取

应该是函数调用带来的开销。
搂住的测试本来就没有什么说服力

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-5-28 22:51:00 | 显示全部楼层

Re:用类封装后每帧处理时间增加了0.5ms,是因为类的存取

还是樱有见地!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 19:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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