最近项目要进行最后一次线上测试,对一些新增的server进行压测,在对同事用我写的协程框架搭建的ranksvr的时候进行压测的时候,ranksvr挂掉了,由于是压了一段时间才挂掉,所以有特定的业务逻辑触发了栈溢出,由于涉及到调用公司第三方API所以,查起来还是比较麻烦,一开始经过加日志,查看栈使用情况,但是发现在栈溢出前业务逻辑的栈使用情况正常。
linux_how_much_memory_can_used
Linux 内存中的 Cache 真的能被回收么?
https://linux.cn/article-7310-1.html
性能分析利器之perf浅析
作为服务器后台开发,不仅仅要写业务逻辑,后台意味着高并发,稳定性,当你写了很多逻辑,发现性能有问题的时候,也要学会性能分析,进行性能优化, 也许你会接触很多性能分析工具:valgrind,gperftools,gprof, oprofile, 有时间慢慢一一介绍,在学习perf的过程中,也学习和加深了很多之前的知识,本文抛砖引玉,希望能帮助大家了解一些性能分析更深的一些东西。
SWIG之为C/C++的API生成Python调用接口基础
现在游戏业务的cache基本都是接入tcaplus,以前业务自己拥有cache的时候我们可以很方便去通过脚本去访问玩家的数据,所以最近想能不能对tcaplus生成Python的访问接口,由于tcaplus只提供了C++ API屏蔽了底层的协议数据细节,不太好直接写Python访问接口,偶然间接触到了SWIG,差不多花了一周时间,通过官方手册完成了SWIG对Tcaplus Python 接口的封装。
你知道svn的needs-lock属性吗
我们都知道svn对于文本文件可以支持多人合作修改,会自动将多人对于同一文件的操作进行合并,但对于二进制文件只能爱莫能助了!
你真的知道常量指针和指针常量吗
C中的由于翻译的问题,有时候我们会混淆常量指针和指针常量的含义,但是我们都知道const char * 和char * const的区别,这里确实需要吐槽一下这两个名字的翻译。
GCC栈溢出检测技术
前一段时间在写ucontext的协程库的时候,遇到了栈空间溢出问题,然后就想到要研究一下堆栈溢出检测的相关技术。
欢迎批评指正,如果对汇编有一个语法问题可以看我之前的一片文章,协程:posix::ucontext用户级线程实现原理分析中的汇编基础一节。
首先我们直接看一段栈空间溢出的代码:
一个整数类型转换导致的线上bug
上周做了一个周年庆的抽奖的需求, 抽奖的规则一般就是在概率的基础上, 将奖品按时间跨度均匀分配, 奖励有实物和虚拟奖励. 抽奖代码的核心在:按时间轴均匀分配奖励和严格控制奖励的数量, 不能出现数量的不一致.
昨天上线后, 今天早上发生了一件从来没有想到会发生的bug, 就是抽奖滚屏公告不见了, 就是前台拉取不到中奖滚屏信息了. 果然是万万没想到呀! 通过脚本直接从后台拉取也是同样的结果, 问题出现在哪里?