游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2754|回复: 8

请教:游戏中内存频繁分配问题

[复制链接]

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2007-6-30 18:55:00 | 显示全部楼层 |阅读模式
在游戏中有时候需要大量分配小块小块的内存,譬如维护扩建链表,这样频繁的分配、释放内存,会不会造成效率下降?有没有什么方法搭救? [em24]

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
发表于 2007-6-30 19:06:00 | 显示全部楼层

Re:请教:游戏中内存频繁分配问题

用内存池吧

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
 楼主| 发表于 2007-7-2 11:33:00 | 显示全部楼层

Re:请教:游戏中内存频繁分配问题

内存池就能解决频繁的问题吗?.....

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2007-7-2 13:47:00 | 显示全部楼层

Re:请教:游戏中内存频繁分配问题

先弄一大块内存。然后自己管理指向某段内存的指针。这样就避免了频繁的分配了。

5

主题

755

帖子

757

积分

高级会员

Rank: 4

积分
757
发表于 2007-7-2 17:46:00 | 显示全部楼层

Re:请教:游戏中内存频繁分配问题

自己算好足够的内存块.然后自己从在new等等.自己把早就声请好的内存画出来给其他使用

2

主题

79

帖子

85

积分

注册会员

Rank: 2

积分
85
QQ
发表于 2007-7-2 20:02:00 | 显示全部楼层

Re: 请教:游戏中内存频繁分配问题


   使用lookaside list,预分配对象。

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2007-7-2 20:32:00 | 显示全部楼层

Re:请教:游戏中内存频繁分配问题

游戏机游戏一般都是用保守的分配策略,即一开始决定对象个数的最大值,一开始分配好,然后就不会再分配了。
PC和360上的话,可以宽松一点,可以适当动态分配。不过个人建议还是保守的策略更适合一些。这是本人的经验之谈。

11

主题

112

帖子

112

积分

注册会员

Rank: 2

积分
112
发表于 2007-7-3 19:25:00 | 显示全部楼层

Re:请教:游戏中内存频繁分配问题

《C++游戏编程》中讲到,内存池就是先分配好一大块内存,然后重载new,delete从内存池上分配内存,释放内存时,并不是返回给物理内存,而是返回给内存池,这样就避免了内存碎片问题。至于提高内存池的效率,可以为一个类建一个内存池,也就是说,这个内存池这负责为这个类分配内存,而不是管理全局内存。

我的理解,不知道对不对呢?LZ大人用的又是什么方法呢?

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2007-7-3 21:54:00 | 显示全部楼层

Re:请教:游戏中内存频繁分配问题

最简单的对象池,一般delete时候不是真的delete,而是放到一个空闲链表里,下次new时,先检查是否有空闲,有则用旧的,否则才真的new。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 23:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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