游戏开发论坛

 找回密码
 立即注册
搜索
查看: 10459|回复: 24

游戏都需要有自己的内存管理程序吗?

[复制链接]

13

主题

978

帖子

978

积分

高级会员

Rank: 4

积分
978
发表于 2006-5-7 20:15:00 | 显示全部楼层 |阅读模式
我记得这里的某篇文章里提到过游戏要有自己的内存管理程序

又在RealtimeRendering里面见到了优化建议:先分配一块大的内存,然后手动管理内存的分配和释放

俺想问一下:这是必须的吗?难道系统的malloc效率真的很低下?那sdt::vector岂不是…… [em7] [em24]

30

主题

569

帖子

569

积分

高级会员

Rank: 4

积分
569
发表于 2006-5-7 20:52:00 | 显示全部楼层

Re:游戏都需要有自己的内存管理程序吗?

  以前有人统计过,具体机器不详,WINDOWS下每次malloc需要耗费150ns时间,也就是0.15毫秒。刷新率60桢的游戏,每次循环分配100次内存就挂了。
  std::vector是纯算法的,已经把内存接口分离出去,怎么实现是你自己的事儿。

1

主题

177

帖子

198

积分

注册会员

Rank: 2

积分
198
QQ
发表于 2006-5-7 20:53:00 | 显示全部楼层

Re:游戏都需要有自己的内存管理程序吗?

防止出现内存碎片,内存优化是很必要的!

12

主题

124

帖子

124

积分

注册会员

Rank: 2

积分
124
QQ
发表于 2006-5-7 21:28:00 | 显示全部楼层

Re:游戏都需要有自己的内存管理程序吗?

个人觉得看游戏规模了,不是很复杂的,也不用自己管理内存吧?

38

主题

275

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2006-5-7 21:28:00 | 显示全部楼层

Re:游戏都需要有自己的内存管理程序吗?

  最简单的实现方法是不是先分配一块足够大的内存,然后程序里每次要内存时,就从那块已分配好的内存里取空间?

14

主题

163

帖子

178

积分

注册会员

Rank: 2

积分
178
QQ
发表于 2006-5-8 03:14:00 | 显示全部楼层

Re:游戏都需要有自己的内存管理程序吗?

完全没有必要.
先分配一块大的内存的行为是愚蠢的,即使malloc也不见得立刻分配内存,即使分配内存也不一定是连续的.
当然,我的建议是重写malloc,而不是在malloc的基础上再写malloc,当然,如果你的malloc不如标准的好,那么你还是放弃吧.

14

主题

163

帖子

178

积分

注册会员

Rank: 2

积分
178
QQ
发表于 2006-5-8 03:17:00 | 显示全部楼层

Re: Re:游戏都需要有自己的内存管理程序吗?

hanma: Re:游戏都需要有自己的内存管理程序吗?

  以前有人统计过,具体机器不详,WINDOWS下每次malloc需要耗费150ns时间,也就是0.15毫秒。刷新率60桢的游...


这种统计是没有意义的,因为标准库不同,malloc函数就不同.

18

主题

47

帖子

47

积分

注册会员

Rank: 2

积分
47
发表于 2006-5-8 08:24:00 | 显示全部楼层

Re:游戏都需要有自己的内存管理程序吗?

应该这么说,如果你的水平足够高,自己写肯定更好一点;如果没有什么把握弄不好可能越写效率还不如系统提供的。

38

主题

275

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2006-5-8 08:38:00 | 显示全部楼层

Re: Re:游戏都需要有自己的内存管理程序吗?

esxgx: Re:游戏都需要有自己的内存管理程序吗?

完全没有必要.
先分配一块大的内存的行为是愚蠢的,即使malloc也不见得立刻分配内存,即使分配内存也不一定是...


那么最简单的方法是什么(一个思路)?怎么重写 malloc ?

30

主题

569

帖子

569

积分

高级会员

Rank: 4

积分
569
发表于 2006-5-8 08:51:00 | 显示全部楼层

Re:游戏都需要有自己的内存管理程序吗?

  哎,不好意思,误导新人了,查了下资料,是50万次分配和释放消耗1500MS,大约一次NEW和DELETE需要3NS,还是很慢,自己写的话,效率可以提高10-20倍。
  我提供数据主要是为了提供一个量上的参考,大致有多慢是应该心中有数的,7楼不要误会。
  顺便再补一句,这里发言的真的都是新人,说的全是外行话。Gameres快沦为业余论坛了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 11:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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