因为,目前在做游戏的的后台开发。尽管最近在忙于开发游戏业务逻辑的的相关代码,也在不停思考着游戏后台的一些架构问题。
因为游戏后台处理着大部分的业务逻辑,因此。在性能上是必须的。
那么如何尽最大的提高性能呢,下面根据我们后台架构提出的几点,因为我们后台架构业务逻辑是单进程将单线程处理
首先,我们知道目前后台所效率上受到限制的就是 数据库IO>磁盘》网络IO>cpu>内存
从以上,我们可以看到,我们优化的空间很大。
1,如何降低数据库IO给我们带来的瓶颈呢,我们首先想到的就是操作数据库的异步IO.当我们要写数据库的时候,程序先发送到数据库进程,立即返回。去处理下一个请求,
当我们业务进程监听到了数据库进程的时候,在处理其返回结果。这就很有效的做了一个异步操作。
2。磁盘IO。我们什么时候会涉及到呢,那就是在写一些日志文件或者写到文件的数据,其思想,我们还是用到了异步操作,或者叫做BUFF.先把数据写到buf下,让一个单独的进程不停的对其刷出到文件中。
3.网络IO,这个应该说是不可避免的一个io,尤其是在做后台网络架构的时候,因此,我们封装了一个高效的模块,在不同物理机,上进行通信,今本受限于网卡的通信,因此,我们的该模块已经尽可能的提高效率了
4.进程间通信。因此,我们尽可能的在内存操作,在进程通信模块,我们使用了共享内存的模式。因为负责网络io这块有个网络接入层,网络接入层进程和我们的业务逻辑进程是共享内存的通信,如果在一台物理机上。
5.为了提高我们业务员逻辑效率,
注意几点,全部使用指针,减少内存的拷贝。逻辑中减少使用大循环,和杜绝双重循环。
使用高效的二分查找,二分删除等。数据存储使用hash内存。
使用内存池对内存的管理。
————————————————
版权声明:本文为CSDN博主「wintree」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wallwind/article/details/8536342