网游服务器和内存碎片
2011-05-20 10:05
295 查看
这个看似一个很简单的概念,但有些细节可能会漏掉。
直接用默认的new(malloc)/delete(free),如果C库内部没有用一个memory pool,kernel肯定会出现碎片。有的C库如果提供一个
公用memory pool有没有意义呢?个人认为意义不大,这种情况下,kernel碎片消失了,但C库的pool还是会出现碎片。问题没得到根本
的解决,只是碎片从地方转移到另外一个地方而已。有人也有可能实现一个自己的公共的memory pool,效果和C库的memory pool是一样
的。
实际中,可以考虑用一个专有的memory pool(可以称为object manager),系统启动时,预创建N个object,一般建议N取系统可能用
到的对象的最大值。运行的过程中,需要一个object就从这个专有的memory pool中取,不用了放回到这个pool中。
直接用默认的new(malloc)/delete(free),如果C库内部没有用一个memory pool,kernel肯定会出现碎片。有的C库如果提供一个
公用memory pool有没有意义呢?个人认为意义不大,这种情况下,kernel碎片消失了,但C库的pool还是会出现碎片。问题没得到根本
的解决,只是碎片从地方转移到另外一个地方而已。有人也有可能实现一个自己的公共的memory pool,效果和C库的memory pool是一样
的。
实际中,可以考虑用一个专有的memory pool(可以称为object manager),系统启动时,预创建N个object,一般建议N取系统可能用
到的对象的最大值。运行的过程中,需要一个object就从这个专有的memory pool中取,不用了放回到这个pool中。
相关文章推荐
- 网游服务器和内存碎片
- Node.js之网游服务器实践
- 无缝世界网游服务器架构的设计思路
- Node.js之网游服务器实践
- Node.js之网游服务器实践
- 无缝世界网游服务器架构的设计思路
- 用 python 快速搭建网游服务器
- 网游服务器设计--到底应该追求性能和效率还是应该追求架构清晰易维护?
- 网游服务器中的GUID(唯一标识码)实现-基于snowflake算法
- [投稿]一年工作总结 (单进程网游服务器框架介绍)
- 一种经典的网游服务器架构
- Node.js实现网游服务器高性能和可扩展
- 网游服务器通信架构的设计方案
- 网游服务器通信架构的设计方案
- 用 python 快速搭建网游服务器
- 《新飞飞》网游服务器架构设计
- 网游服务器的安全和稳定性
- 网游指令分服务器处理
- 网游的服务器瓶颈
- 用 python 快速搭建网游服务器