摘要:
服务器上线之后,发生了3次crash,感觉是一次比较典型的内存bug的排错经历,所以特地记录下来供以后借鉴。下面描述一下3次crash时候的coredump的当前堆栈信息。 第一次crash的coredump文件: 从堆栈信息可以看出来,是逻辑一个函数在构造string对象的时候,最后在malloc 阅读全文
摘要:
最近在看《七周七并发模型》,其中函数式编程使用的是clojure来做说明,所以也想顺便学习一下clojure这种不同的编程方式语言。那么做开发肯定需要开发环境,第一步先下载clojure官方运行库,或者说平台,网址是 http://clojure.org/。 接下来我们需要一个可以方便编写cloju 阅读全文
摘要:
在3D MMO或者其他类型的游戏中,通常需要进行寻路处理,地图针对寻路有多种方案,比如划分格子,凸多边形等,本篇介绍一种比较常用的navigation mesh的方式来进行寻路。不过整套navmesh的算法比较复杂,没有深入的研究写不出来,我们使用网上开源的解决方案,google的recast方案。 阅读全文
摘要:
最近在做服务器的稳定性的相关测试,服务器的网络底层使用的是boost asio,然后自己做的二次封装以更好的满足需求。 服务器昨天晚上发现crash了一次,之前测试了将近半个多月,有一次是莫名的退出了,不过由于是新的测试服,忘记将ulimit -c进行修改了,所以没有coredump,这次又发生了。 阅读全文
摘要:
服务器在做测试的时候,需要监控网络流量,用来了解在不同人数的时候服务器的网络使用量。 我们使用服务器环境是centos7,centos下通常使用iftop,或者nethogs来进行网络流量监控。这2个工具都需要先安装epel,因为这个库通常操作系统是不自带的。 那么就先安装epel,使用的命令是: 阅读全文
摘要:
最近做新的项目,很多库是之前项目积累下来的库。在windows下使用的IDE是vs2013,整体编译的时候,明显感觉编译速度较慢,文件是一个一个编的。 从编译器本身的角度,vs2013是提供了加快编译速度的方法的: 我们可以在C/C++ -> 常规 -> 多处理器编译,选成是,这样就启动了多处理器同 阅读全文
摘要:
公司从svn转到git做版本管理,我搜了一下网上git的服务器,包括gitosis,gitolite等。一开始我是用的是gitosis作为git服务器的,安装过程还算比较简单,整个服务使用python写的,从github上面clone一个工程,然后python setup就可以了。不过gitos... 阅读全文
摘要:
之前用git是在windows下用git的图形化界面进行操作的,这次有一个写了几天的小项目想提交到git上,linux命令行下面没有图形化的界面,所以全部需要git命令来操作。 实践之后,主要是下面几个步骤: (1) 登陆github,创建一个repo项目 (2) 在自己项目工程目录下面运... 阅读全文
摘要:
我们经常使用网页,作为开发人员我们也部署过httpd服务器,比如开源的apache,也开发过httpd后台服务,比如fastcgi程序,不过对于httpd服务器内部的运行机制,却不是非常了解,前几天看见tinyhttpd,只有短短500行左右的代码,就实现了一个简单的httpd服务器的基本功能,这种 阅读全文
摘要:
今天看Java一个关于多线程返回值方式的示例,发现一个自己不太能理解的问题,就是在主线程中启动了几个工作线程,主线程中也没有join,工作线程居然也是正常输出了回调的结果。这个跟linux C++下的线程知识可是不一样的,在C++下,如果main函数退出了,那么所有的子线程也就退出了,我一开始怀... 阅读全文