摘要:当年实现自己的共享内存模板的时候,map和set的没有实现,本来考虑用一个AVLTree作为底层实现的,为啥,因为我当时的数据结构知识里面我和RBTree不熟,只搞过AVLTree,但当时我一直没有看过删除如何实现。结果Scottxu跳出来,参考STLport的实现,迅速用RBTree搞掂了。搞得这... 阅读全文
posted @ 2014-05-15 00:11 fullsail 阅读(2153) 评论(1) 推荐(1) 编辑
摘要:此文档主要用于一个开发同学尝试学习描述一个产品的基本设计。也许工程师都应该有类似能力。反推的基础,目前是自己玩过的一些关卡和youtube上的一些关卡通关视频,主要是前120关。(120关后面应该是最新版本才出)。1 消除块,棋子颜色:青,黄,蓝,粉,褐,灰,6种,表现为小动物。有些时候单局内只出现... 阅读全文
posted @ 2014-05-14 23:28 fullsail 阅读(416) 评论(0) 推荐(0) 编辑
摘要:对QQMusic 2014的挥挥手。 阅读全文
posted @ 2014-04-14 12:06 fullsail 阅读(269) 评论(0) 推荐(0) 编辑
摘要:写代码有时候和笃信宗教一样,一旦信仰崩溃,是最难受的事情。早年我读过云风的一篇《VC 对 memcpy 的优化》,以及《Efficiency geek 2: copying data in C/C++, optimisation》,所以我是坚信很难能写出比C运行时库更快的memcpy的。但最近有两个... 阅读全文
posted @ 2013-06-28 02:04 fullsail 阅读(8807) 评论(8) 推荐(6) 编辑
摘要:前缀索引,并不是一个万能药,他的确可以帮助我们对一个写过长的字段上建立索引。但也会导致排序(order by ,group by)查询上都是无法使用前缀索引的。 任何时候,对于DB Schema定义,合理的规划自己的字段长度,字段类型都是首要的事情。 阅读全文
posted @ 2013-05-18 22:33 fullsail 阅读(2227) 评论(3) 推荐(0) 编辑
摘要:从密码学的角度分析了TX的TEA算法,另外,本着一个性能偏执狂的角度,分析了这个实现的几个性能优化点。最好稍微YY了一下TEA的安全性。 阅读全文
posted @ 2013-04-29 23:55 fullsail 阅读(7355) 评论(5) 推荐(3) 编辑
摘要:当然这个的确有点难为编译器了。但的确应该是编译器的bug,上代码。编译环境visual studio 2010, SP1版本。 1 namespace ZEN_LIB 2 { 3 4 5 template<typename HASH_STRATEGY> 6 inline unsigned char *hash_fun(const unsigned char *buf, 7 size_t size, 8 unsigned char result[HASH_STRATEGY::HASH_RESULT_SIZE]) 9 {10 ZEN_ASSERT(result != N... 阅读全文
posted @ 2013-02-23 23:01 fullsail 阅读(1131) 评论(1) 推荐(0) 编辑
摘要:本文对MD5和SHA1算法做了较为详细的解释,也解释了一下为什么部分开源代码较为难以阅读。同时提供了非常清晰的源码。 阅读全文
posted @ 2013-02-22 03:12 fullsail 阅读(23358) 评论(3) 推荐(5) 编辑
摘要:最近在看一些同步对象模拟的东东,特别对在Windows下如何模拟条件变量折腾了很久。1 Windows同步对象Event微软有一个很有意思的同步对象,某种程度上和Linux的条件变量很相似。但秉承微软一贯的作风,有些地方设计的又有点怪异。Event通过函数CreateMutex创建,可以分为手动模式和自动模式两种模式,两种模式下表现迥异。和其他同步对象一样,在WaitForSingleObject或者WaitForMultipleObjects等待激发。激发(取消激发)法有3个函数SetEvent,ResetEvent,PulseEvent根据模式不同给出说明如下表:自动模式手动模式SetEv 阅读全文
posted @ 2013-01-25 00:54 fullsail 阅读(1961) 评论(0) 推荐(0) 编辑
摘要:本文用于探讨在共享内存中使用容器的好处,以及几种在共享内存中C++模板容器的方法。1 为什么要在共享内存中使用模板容器?为什么要避开普通内存而选择共享内存,那肯定是使用共享内存的优势:l 共享内存可以在多进程间共享,到达进程间通信的方式。l 共享内存可以在进程的生命周期以外仍然存在。这就可以保证在短暂停止服务(服务进程coredump,更新变更)后,服务进程仍然可以继续使用这些共享内存的数据。如果这些优势在加上C++容器模板使用方便,开发快速的优势,无疑是双剑合璧,成为服务器开发的利刃。2 在共享内存中使用模板容器最大难点是?但如果要要做到让容器在模板中使用,最大的麻烦是什么?就是指针。(同步 阅读全文
posted @ 2013-01-20 21:30 fullsail 阅读(4197) 评论(2) 推荐(3) 编辑