最近需求少了,终于有时间修一下底层的bug,做一点工具方便查bug,写篇文章简单记录一下。

一是优化了一个玩法进程的启动速度。这个玩法需要用战力做匹配,玩家按战力分段放进不同的桶里,每个桶用skiplist组织。启动服务器的时候,会遍历所有玩家,放进对应的桶里,方便正式开放的时候进行搜索匹配。之前是遍历策划配置的战力分段表,高端玩家几乎要遍历完整个表才能进到桶里。现在改成了二分查找,匹配速度提高了好多

二是隔壁组做mmo的同事,问了下有没有现成的查内存泄漏的工具。他们加班的比较凶,周六晚加完后,周一发现服务器被OOM Killer杀掉了。。。于是整合了一下云风的lua-snapshot,做到skynet里面,提了个PR。原理比较简单,第一次调用snapshot的时候,对VM的内存对象做一次镜像。做了某个可疑操作后,再调一次snapshot,前后镜像做比对。我对比较出来的对象按层次组织了一下,方便日志里打印。

三是修复了gosproto的pack函数。这个bug相当诡异,会打出来一个客户端无法解包的sproto包。详情见github上的PR,顺便读了下sproto的pack的文档,0xFF后面接的N是拷贝(N+1)*8 bytes的意思,之前理解错了。。 unpack应该还有问题,还在看。。。

bug狩猎的更多相关文章

  1. NetHogs下载和监控

    转自:http://blog.csdn.net/testcs_dn/article/details/40506225 CentOS6.5下使用NetHogs监控进程网络使用情况 分类: CentOS2 ...

  2. CentOS6.5下使用NetHogs监控进程网络使用情况

    Nethogs 是一个终端下的网络流量监控工具,它的特别之处在于能够显示每一个进程的带宽占用情况,这样能够更直观获取网络使用情况.它支持 IPv4 和 IPv6 协议.支持本地网卡及 PPP 链接. ...

  3. 使用NetHogs监控进程网络使用情况

    Nethogs 是一个终端下的网络流量监控工具,它的特别之处在于可以显示每个进程的带宽占用情况,这样可以更直观获取网络使用情况.它支持 IPv4 和 IPv6 协议.支持本地网卡及 PPP 链接. 使 ...

  4. centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,curl,ping ,telnet,traceroute ,dig ,nc,nmap,host,nethogs 第十六节课

    centos linux系统日常管理3  服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,cur ...

  5. ref:一系列用于Fuzzing学习的资源汇总

    ref:http://www.freebuf.com/articles/rookie/169413.html 一系列用于Fuzzing学习的资源汇总 secist2018-04-30共185833人围 ...

  6. Linux服务器大量向外发包问题排查

    最近Linux redhat 6.5 APP 业务系统,向外大量发送流量,不断建立tcp连接,目标地址是美国的一个IP,估计被当成肉鸡了,比较悲惨,直接飞向IDC机房,防火墙显示这个APP服务器tcp ...

  7. NetHogs监控Linux的每个进程流量

    在日常运维环境中,我们肯定会遇到以下这种需求: 1.网络流量异常,不知道是哪个程序的流量爆涨? 2.日常需要监控网络实时的流量进去数据 面试装逼系列|这篇文章,让运维监控不再成为你的短板! 学会这 1 ...

  8. Tomcat一个BUG造成CLOSE_WAIT

    之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了.然后运维发现了个问题,服务器的HTTPS端口有大量的C ...

  9. a标签点击跳转失效--IE6、7的奇葩bug

    一般运用a标签包含img去实现点击图片跳转的功能,这是前端经常要用到的东西. 今天遇到个神奇的bug:如果在img上再包裹一层div,而且div设置了width和height,则图片区域点击时,无任何 ...

随机推荐

  1. 常见排序算法JAVA实现

    1.冒泡排序,时间复杂度:最好:T(n) = O(n) ,情况:T(n) = O(n2) ,平均:T(n) = O(n2) public int[] bubbleSort(int[] nums) { ...

  2. APP下载在微信无法打开 该如何处理

    大家是不是经常会遇到微信内点击链接或扫描二维码无法打开指定网页的问题?只要你使用微信转发分享,相信你就一定会遇到,那么打不开的原因很简单了,就是被微信拦截了.这个问题我们只需要实现从微信内直接跳出到外 ...

  3. Spring _day02_IoC注解开发入门

    1.Spring IoC注解开发入门 1.1 注解开发案例: 创建项目所需要的jar,四个基本的包(beans core context expression ),以及两个日志记录的包,还要AOP的包 ...

  4. egret贝塞尔曲线运动

    class MtwGame { public constructor() { } private static _instance: MtwGame; public static get Instan ...

  5. 转载, sublime text3 input函数无法执行问题解决方法

    一.安装插件SublimeREPL 按Ctrl+Shift+P,打开命令框.输入Install Package,回车,等待几秒钟,会弹窗提示“安装成功”.    按Ctrl+Shift+P,打开命令框 ...

  6. 6 python高级数据处理和可视化

    6.2. pyplot作图 1.折线图和散点图 t = np.arange(0,4,0.1) plt.plot(t,t,'o',t,t+2,t,t**2,'o') plt.show() 2.柱线图 p ...

  7. c++ 指针、引用和取值;

    直接看代码: #include<iostream> using namespace std; int add(int *a,int *b){ int s; s = *a + *b; cou ...

  8. python入门之小栗子

    1 点球小游戏: from random import choice score=[0,0]direction=['left','center','right'] def kick(): print ...

  9. 结对作业收获_core组

    收获:编码之前必须的思考是逃不掉的,而且这一步是磨刀不误砍柴工,而且会加速以后的步骤 分析: 首要重要的事情是:需要完成的功能,理清逻辑关系.我们要随机产生一定要求的算式,并且计算出算式的值. 其次的 ...

  10. 简单理解 SVM

    SVM,中文名叫支持向量机. 在深度学习出现以前,它是数据挖掘的宠儿: SVM具有十分完整的数据理论证明,但同时理论也相当复杂. 初识SVM  同其他分类算法一样,SVM分类也是寻找合适的决策边界,为 ...