- 浏览: 10246 次
- 性别:
- 来自: 广州
最新评论
文章列表
想为项目增加协程开发的支持,但项目网络层,rpc什么的都已经做好了,无法修改。于是自己写了一个协程封装的库,纯粹的协程调度管理,基本就是gevent的一个去网络化版本,可方便集成到已有项目中。
链接: https://github.com/616050468/pycoroutine
服务器协议一直以来都使用erlang-protobuff,项目地址:https://github.com/ngerakines/erlang_protobuffs,但觉得效率不行,于是想优化一下,思路就是把协议编解码放到底层c去做。正好可以使用云风写的pbc:https://github.com/cloudwu/pbc,于是拿来封装一下nif。虽然看起来很简单,但中间也遇到了一些问题:
1. pbc是非线程安全的,解决办法是初始化时为每个线程创建一个pbc_env环境
2. pbc以字符串key作为消息的字段,但erlang的record结构没有key,只是一个存放term的数组 ...
系统: 64位win7, 开发环境:sublime text 2, go版本: 1.4.1
1. 安装前准备(gcc, gdb, git)
golang在64位系统下默认编译出来也是64位的,相关的gcc工具也需要用64位。当然golang支持交叉编译,64位系统下也 ...
最近使用erlang重构了游戏服务器的所有代码,之前看过C++/lua写的服务器引擎代码,引擎实现了玩家属性自动同步给前端和增量更新玩家数据到数据库的功能,这也是现在很多游戏服务器的优化方向,在引擎层面去解决数据同步和数据持久化,数据发生变化了业务层不需要关心怎么去同步给前端。由于游戏过程中玩家每个业务中玩家数据更改的量其实是很少的,增量的去持久化数据到数据库,可以大大减少数据库压力,基本可以做到实时回写数据(比如隔几s回写一次),就算服务器某个时候down了,对玩家的数据也不会造成很大影响。
本着程序员都要有偷懒的精神,所以我也希望在er ...
最近游戏项目改用c++/lua开发,于是开始学习lua,lua是一种轻量小巧的脚本语言,据说lua是最快的脚本语言也不无道理。这篇文章从lua的数据结构入手,把lua的实现描述出来,加深自己的理解。(lua源码版本为5.2.3)
所谓lua虚拟机其实就是一个c的struct结构体(lua_State),所有lua代码都通过解析器加载到lua_State结构中保存。lua中的基础数据类型分为8种:nil, boolean, lightuserdata, number, string, table, function(包括c函数cfunction和lua函数lfunction) ...