
蜗牛之路
cjf_wei
这个作者很懒,什么都没留下…
展开
-
使用protobuf和socket实现服务器间消息的传递
Protobuf产生于Google,是一种序列化和反序列化协议,具有空间开销小、解析速度快、兼容性好等优点,非常适合于对性能要求高的RPC(Remote Procedure Call)调用。网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个Socket。本文旨在实现通过将消息使用protobuf序列化后经过Socket发送到对端,对端使用protobuf反序列化得到原始的原创 2016-10-22 20:30:11 · 21404 阅读 · 2 评论 -
使用数组和模板实现的队列
队列是一种先进先出的数据结构,可以作为一种缓存机制,在项目中常被用到。队列的实现可以基于链表和数组。链表的优点在于:取头尾元素以及向链表中插入元素的时间复杂度为O(1),且充分利用已分配的存储空间,绝不浪费。而数组由于是连续存储,所以存取元素的速度快。因此在STL中vector的应用要远多于list,以达到以最小的代价实现数据的连续存储。 STL queue是常用的队列,可以满足实际中的各种应用。原创 2016-10-16 17:07:10 · 394 阅读 · 0 评论 -
当自增/减(++/--)遇上多线程
本文主要讲述,在刚接触多线程编程时,将自增变量作为参数传进线程函数时,发生的“奇异”现象。 事情是这样的:生成1000W随机数,创建N个线程,将这些随机数随机的写到这N个文件中,每个随机数在一个文件中占一行。原创 2016-10-29 20:49:43 · 2662 阅读 · 1 评论 -
如何使用Valgrind memcheck工具进行C/C++的内存泄漏检测(转载)
本文转载自https://www.oschina.net/translate/valgrind-memcheck。 系统编程中一个重要的方面就是有效地处理与内存相关的问题。你的工作越接近系统,你就需要面对越多的内存问题。有时这些问题非常琐碎,而更多时候它会演变成一个调试内存问题的恶梦。所以,在实践中会用到很多工具来调试内存问题。在本文中,我们将讨论最流行的开源内存管理框架 VALGRIND。转载 2016-12-17 21:16:32 · 459 阅读 · 0 评论 -
从 MongoDB 及 Mysql 谈B/B+树(转载)
本文从实际应用的角度来介绍以及分析B-树和B+树。介绍为什么mongodb使用B-树建立索引,而mysql使用B+树建立索引转载 2017-07-09 19:56:51 · 350 阅读 · 0 评论 -
Linux环境下Thrift的安装
thrift安装原创 2017-12-03 10:59:33 · 7077 阅读 · 0 评论 -
Windows下MySQL的安装
最近尝试在windows下安装MySQL,参照网络上的文档介绍,但在实际操作时还说遇到了一些问题,在此记下,以供日后翻阅。环境windows7 64位系统mysql-5.7.23-winx64.zip 社区版安装包下载,进入mysql下载页,选择"MySQL Community Server",选择具体的操作系统参数,进行下载。ps:以下操作使用的是windows7自带的PowerS...原创 2018-10-25 09:16:30 · 315 阅读 · 0 评论