Python游戏服务器开发日记(九)近期问题总结。(打酱油中……)

22 篇文章 0 订阅
18 篇文章 0 订阅

        由于领导提出的多进程方案有很多问题,进展缓慢。好在有另一个同事慢慢进展中,我主要是做各种单独的试验,集成各种技术进行尝试。

        Python多子进程方案的核心是共享内存,除了mmap方式,还有shm方式,都是linux提供的共享内存方案。

        无论哪种共享内存方式,都需要自行申请整块内存,然后在创建对象时,将对象数据放在共享内存区域,实现多进程都能访问的目的。

        

        这就带来两个问题:

        1、复杂对象的管理,例如数组和字典。必须自定义内存分配器,STL已经留出了接口,但是实现起来很麻烦(水平有限)。

        2、Python创建的对象,在Python自己的内存池之中。想要将其改放到共享内存池中,难以避免要改动Python代码。


        这两个问题实在懒得考虑。因为我之前提出的多线程、多动态库方案,可以很好的避免这两个问题,极大简化了设计。


        不谈总体进展,记录一下最近慢慢实现的几个功能模块:

        1、Python执行遇到错误时,打印错误信息。用Python提供的C回调接口实现。

        2、在Python中定义Entity,在C++层将其分析出来,形成一个EntityDescription。目的是获得一些元信息,供很多地方使用。比如网络传递,就不要直接传递PyObject,而是自定义包结构,按类型传递属性和数据;又比如数据库存储等等。

        3、重新阅读了skynet_mq,消息队列,基本搞清了逻辑。但是没写成代码,现在又忘了。


        今天打算搞一搞ffpython,学习包装C++代码实现更简单的交互。架构中不一定能用到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值