C&C++
文章平均质量分 79
chosen0ne
互联网码农,对Linux,分布式计算和存储,编译器,nginx,脚本语言感兴趣
展开
-
C语言可变参数列表应用——多字符串复制和链接
C标准库中头文件中包含可变参数列表的实现,完成遍历未知数目和类型的函数参数列表的功能。提供以下3个宏以及va_list变量: va_start(va_list ap, lastarg):在提取可变参数前必须调用这个宏实现初始化。 va_arg(va_list ap, type_of_var):用于提取变量,type_of_var是原创 2012-10-17 23:27:08 · 5424 阅读 · 0 评论 -
redis源码分析(6)——aof rewrite
介绍redis的aof rewirte代码实现原创 2015-03-23 11:19:23 · 8164 阅读 · 0 评论 -
redis3.0深入详解(1)
从源码层面介绍redis3.0相对于2.8的改进原创 2015-04-10 17:24:06 · 11409 阅读 · 4 评论 -
redis源码分析(7)——rdb
介绍redis持久化rdb的实现细节原创 2015-04-15 16:23:30 · 7710 阅读 · 0 评论 -
localtime死锁——多线程下fork子进程
介绍localtime非信号安全,并且在多线程下,fork子进程出现死锁的原因原创 2015-07-17 16:20:57 · 11350 阅读 · 1 评论 -
redis源码分析(8)——replication
从源码级别介绍redis的主从同步的实现机制原创 2015-07-31 11:48:18 · 6103 阅读 · 1 评论 -
Redis EXISTS命令耗时过长case排查
介绍线上redis,非预期的Expire耗时过长的case排查原创 2016-01-19 16:47:23 · 19639 阅读 · 0 评论 -
infQ——不受限于内存的队列
本文设计了一个不受限于内存的队列。目标是在保证性能的情况下,提供无限容量(受限于磁盘,代价很低),用于替换掉redis本身的list结构,避免在队列场景中,由于消费能力不够,导致的拥堵。原创 2016-02-29 18:25:37 · 5819 阅读 · 1 评论 -
swoole IO处理模型
介绍swoole网络框架中IO处理模型、流程及一些细节原创 2016-11-15 12:41:40 · 6050 阅读 · 0 评论 -
redis源码分析(5)——aof
介绍redis持久化机制——aof的实现原创 2015-03-17 11:50:37 · 5293 阅读 · 0 评论 -
redis源码分析(3)——请求处理
从源码分析,redis请求的处理过程原创 2015-01-23 12:23:05 · 18378 阅读 · 0 评论 -
FlatBuffers vs Protocol Buffers
介绍FlatBuffer,并和ProtocolBuffer做了简单的性能对比原创 2015-01-23 00:04:05 · 20886 阅读 · 1 评论 -
C语言字符串分割——strtok
之前遇到字符串分割的需求时,都是自己去实现,最近发现其实c标准库已经提供了这个功能。对标准库还是不熟悉啊,导致重复造车轮了,有必要把标准库看一下。。。 先看一下之前自己实现的字符串分割函数:void strsplit(const char *str, char *delim, void (*visitor)(const char *, int, int)){原创 2012-10-18 11:37:31 · 23239 阅读 · 10 评论 -
Linux下获得本机ip
java版private InetAddress getLocalIp() throws SocketException{ Enumeration e = NetworkInterface.getNetworkInterfaces(); while(e.hasMoreElements()){ NetworkInterface ni = e.nextEleme原创 2011-09-30 14:41:38 · 3151 阅读 · 0 评论 -
TCMalloc小记
周末抽空看了一下tcmalloc,了解了个大概。下面记录一下。一. 原理 tcmalloc就是一个内存分配器,管理堆内存,主要影响malloc和free,用于降低频繁分配、释放内存造成的性能损耗,并且有效地控制内存碎片。glibc中的内存分配器是ptmalloc2,tcmalloc号称要比它快。一次malloc和free操作,ptmalloc需要300ns,而tcmalloc只要50ns。同时tc原创 2013-07-16 08:53:59 · 52537 阅读 · 2 评论 -
智能指针
智能指针就是存储指向堆上分配的对象的指针,行为上与C++的原生指针基本一致,区别是不需要管理对象的销毁。智能指针可以选择在适当的时机销毁对象,可以大幅降低空悬指针和野指针等错误。所有智能指针如果是非类成员,一般都是栈上分配的对象。这里介绍boost库的智能指针,主要有:1. scoped_ptr 概念上讲,智能指针意味着持有它所指向对象的拥有权,有责任在该对象不在需要时对其销毁。scoped_pt原创 2013-07-18 14:48:04 · 2413 阅读 · 1 评论 -
Java和C++中多态的实现方式
简要描述C++与java多态实现机制原创 2013-08-27 00:28:34 · 6784 阅读 · 0 评论 -
Linux下实现C++类的动态链接
介绍动态链接库的C API,C++类的动态链接以及相关的坑原创 2013-08-17 16:01:30 · 6256 阅读 · 2 评论 -
redis源码分析(4)——发送响应内容
本篇介绍redis发送响应内容的过程原创 2015-01-30 16:25:44 · 5585 阅读 · 7 评论 -
redis源码分析(1)——初始化
redis源码分析,介绍redis的初始化及启动过程原创 2015-01-13 23:05:16 · 5422 阅读 · 0 评论 -
redis-infq——将infQ集成到redis
infQ以及对应定制化的redis去年就开发完了,现在放出来供大家把玩一下。(infQ的介绍见 infQ——不受限于内存的队列)原创 2016-11-30 19:01:39 · 2801 阅读 · 0 评论