一个简单的RPC实现,github:https://github.com/shinepengwei/miniRPC
Boost.Asio库
Boost.Asio封装了一个io异步调用接口,可以用于实现网络通信操作。Asio提供了IO服务接口,I/O 服务抽象了操作系统的接口,允许第一时间进行异步数据处理,而 I/O 对象(通过IO服务创建,比如Socket)则用于初始化特定的操作。
GLProgram使用不当导致的内存泄漏
GLPogramState保存GLProgram的状态(uniforms和attributes)。一个GLProgram可以被多个node使用,但是如果shader中使用uniform值,那么每个节点都需要拥有自己的GLProgramState。
IOS中的memory warning处理
游戏中在内测阶段出现了一些很奇怪的问题,这些问题在开发阶段从来没有遇到过,主要表现在创建一个sprite创建失败。刚开始我们也一头雾水,因为创建这些sprite的时候内存使用很低,有的才几十M,按说不应该出现内存问题,后来测试发现确实是ios系统发送给游戏memory warning,调用didReceiveMemoryWarning
函数,cocos中处理memory warning的默认方法是调void Director::purgeCachedData(void)
函数,此函数的主要工作是将内存中没有使用的texture和spriteFrame删掉。
工程/编译配置文件解析
在vs以及xcode这种IDE,他们的工程文件都包括了编译信息以及相关的配置信息,其实如果不用vs的话,也需要生成一个编译信息文件,如android.mk等。
使用snapshot检测Lua中的内存泄露
本文使用云风大大写的内存泄露检测工具:http://blog.codingnow.com/2012/12/lua_snapshot.html,主要介绍此工具如何使用。