
linux
文章平均质量分 57
zhenmu
这个作者很懒,什么都没留下…
展开
-
linux下简单的 程序后台运行、查看、关闭、监控 的shell脚本, 记录一下
centos下,比较通用一点的几个shell脚本记录一下1. 后台运行:back_run.sh运行方式sh back_run.sh game_server会生成一个 xxx.pid文件exe=$1nohup ./${exe} 0 0 >> log/${exe}.clog 2>&1 &echo $! > "${exe}.pid"2. 查看运行情况, 查看对应进程的pidinfo.sh#!/bin/bashcur_...原创 2020-06-04 10:42:05 · 1298 阅读 · 0 评论 -
记录linux下 分析线上进程的函数开销情况 perf top -p xxxx
perf 工具的基本使用:http://blog.itpub.net/24585765/viewspace-2564885/几个关键的选项$perf top -h-p, --pid <pid> profile events on existing process id-g enables call-graph rec...转载 2019-11-07 10:56:12 · 1282 阅读 · 0 评论 -
jsoncpp 执行效率优化,非常规极限优化,适合linux下, 效率几乎提高50%以上
这是2年多前, 一个游戏服务器项目要上线了,协议消息处理和数据存放都基本用json的,用的是jsoncpp开源库主要逻辑处理部分是单线程处理,所以玩家一多cpu就吃不消了, 要优化,用gprof等工具找啊找研究发现是 主要json部分引起的一些内存开销占用cpu资源过多。(还有一些智能指针,按下不表)找了很多方法优化jsoncpp,1.比如 http://w原创 2016-08-04 10:51:03 · 4869 阅读 · 1 评论 -
跟踪变量被哪段代码改掉,gdb watch 断点调试时,却无法watch
服务器实际运行时, 某个对象的某个变量不知道啥时候被改掉了。 用valgrind查了 ,没有内存越界, 那就是逻辑上有问题。这种情况 gdb 的 watch功能就非常好用。 它能检测内存中的值被改了,就会自动断点。现在能访问到这个变量的地方随便断个点, 断点后 watch一下这个变量地址中的内容。但实际使用中 watch m_sid原创 2017-01-09 11:51:12 · 4325 阅读 · 1 评论 -
lua里实现类似宏定义,动态生成代码
其实就是用了 lua 的 loadstring 功能。1.把需要动态生成的代码拼接成为一个字符串 存放到 str里,2. loadstring(str) (注:loadstring 这个只是解析了代码,需要执行一下才会生效)所以一般写成:或者:示例:自己封装一个类似宏的函数, 我这里是定义了一个 register_msg 用来处理接收到的 协议 统一打印出来。 code 内容 相当于一个xxxx.lua文件,文件内容为执行 loadstring(code)() 后相当于原创 2017-02-24 21:13:16 · 11764 阅读 · 2 评论