摘要: 在服务器的网络层中,发送缓冲区是一个不可绕过的课题 目前我遇到了主要有两种处理方式 方式一:队列处理 1、在逻辑线程里面有一个总的发送队列,然后服务器每帧都会处理这个队列 2、每一个cLink里面有一个消息队列,当cLink的状态变化时候会去处理这个消息队列 3、在每一帧处理的时候 如果该链接状态可 阅读全文
posted @ 2016-03-23 11:37 树梢流年 阅读(1016) 评论(0) 推荐(0) 编辑
摘要: 针对服务器框架Engine,在工作线程中发现该线程占用CPU过高,分析之后发现问题出在死循环那里   在这个线程里面出现的死循环,所以导致CPU过高。   而在网络线程里面,因为有执行 int nEventNum = epoll_wait(m_nEpId, arrEvents, default_ep 阅读全文
posted @ 2016-03-14 17:28 树梢流年 阅读(1913) 评论(4) 推荐(0) 编辑
摘要: 针对服务器引擎,今天做了一个实验 一个客户端每毫秒发送一个消息包,消息ID相同,里面的id字段递增,用来测试服务器对消息的吞吐 今天在服务器调试的时候发现没一个ID字段都会重复,刚刚开始以为是服务器消息队列处理出问题了, 检查了好久,最后才发现,在客户端有两个线程执行了同一个函数,导致每一个消息都会 阅读全文
posted @ 2016-03-10 20:21 树梢流年 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 针对自己写的一个服务器网络引擎Engine 文章后面附上源码 使用epoll 刚刚开始时候发现占用CPU 特别高,但是网络引擎里面基本没干什么事,不应该有这么高的CPU,一直不解, 于是自己慢慢的分析服务器工作线程,发现主要的性能消耗应该是处理IO 时候, int nEventNum = epoll 阅读全文
posted @ 2016-03-09 14:57 树梢流年 阅读(13606) 评论(0) 推荐(0) 编辑
摘要: 昨天搞定了一个十万火急的issue,客户抱怨产品升级后系统会变慢和CPU使用率相当高,客户脾气很大,声称不尽快解决这个问题就退货,弄得我们 R&D压力很大,解决这个issue的任务分给了我,客户是南非的一个公司,由于时差问题,我只好在家远程解决问题,晚上8点半用 gotomeeting远程到客户电脑 阅读全文
posted @ 2016-03-08 17:00 树梢流年 阅读(7628) 评论(0) 推荐(1) 编辑
摘要: 今天调试自己写的一个服务器引擎时候 class cServerBase : cThreadObj cServerBase 线程发现不动了 调试之后发现原来是锁的问题 SimpleLock里面的构造函数默认执行了 lock 注释掉之后就没问题了 通过这个小例子,以后自己可以注意一下,如果发现线程停止工 阅读全文
posted @ 2016-03-07 15:37 树梢流年 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 环境说明: 静态库文件项目:engine C++ 项目:server 在server项目中引用静态库的库文件libEngine.a 需要设置如图选项,才能引用静态库项目里的文件 主要设置: 1、include源文件 2、包含的库文件 3、库文件的路径 注意:静态库的文件名字不是生成的静态库的名字,而 阅读全文
posted @ 2016-03-02 14:13 树梢流年 阅读(1497) 评论(0) 推荐(0) 编辑
摘要: 这几天学习了一下 tmux的使用 tmux 可以同时打开多个窗口 关于使用技巧 复制文章一下 哈哈 感谢网友 ================================华丽的分割线========================================================= 阅读全文
posted @ 2016-02-20 17:58 树梢流年 阅读(226) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2016-02-17 09:51 树梢流年 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 1 服务器代码 Linux eclipse C++ 1 //============================================================================ 2 // Name : epollServer.cpp 3 // Author : f 阅读全文
posted @ 2016-02-16 15:50 树梢流年 阅读(873) 评论(1) 推荐(0) 编辑