Libgod | 致力于高并发服务端开发..
摘要: 本文来源于libGod官网http://www.libgod.com,转载请注明来源C++实现的Tuple类,非常好用,新老编译器都支持。在编译器支持可变模版参数的情况下,这个Tuple支持任意多成员,不支持的情况下,支持的成员是有限的,现在只支持3个成员,需要支持跟多成员,也可以轻松扩展下。有码有真相:#include#includeusingnamespacestd;#ifdef__GXX_EXPERIMENTAL_CXX0X__templatestructTuple;templatestructTuple{};templatestructTuple:publicTuple{Tuple() 阅读全文
posted @ 2013-11-27 10:13 libGod 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 本文来源于libGod官网http://www.libgod.com,转载请注明来源UUID,即通用唯一识别码,产生的随机数据重复概率几乎为零,平时写程序的时候还是会用到,所以封装了一下,使用起来更简单了。头文件:namespaceGod{structUuid{public:DEFINE_PTR(Uuid);typedefuint16_tsize_type;enum{UUID_LENGTH=sizeof(uuid_t),};public:Uuid(boolempty=false){reset(empty);}Uuid(constbyte_t*data,size_typelen){reset(d 阅读全文
posted @ 2013-11-27 10:08 libGod 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 在游戏中有时会遇到这样一种情况,某客户端发了个请求到服务端,但收不到服务端回复,看服务端的log,也没任何错误,最后调试跟踪代码,发现代码死锁了。遇到这种情况比较纠结,于是捣腾了一个自动检测死锁的功能,如果发生死锁,会马上打印堆栈信息,并终止程序,如果是在调试环境中,会自动断点到发生死锁的地方。实现 阅读全文
posted @ 2013-11-27 10:06 libGod 阅读(953) 评论(0) 推荐(0) 编辑
摘要: 本文来源于libGod官网http://www.libgod.com,转载请注明来源God一直致力于研究高并发服务端的开发,这次要优化的是libGod库中的线程本地存储变量,线程本地存储变量访问非常频繁,优化后库的性能应该会提高不少。已知的线程本地存储方法有boost中的thread_specific_ptr类,gcc中的__thread关键字,pthread中的pthread_getspecific函数。这次测试这3中本地存储以及普通变量之间的性能差别,代码如下:#include#include#include#include#includeusingnamespacestd; classC 阅读全文
posted @ 2013-11-27 10:02 libGod 阅读(260) 评论(0) 推荐(0) 编辑
//
// //
  libGod博客