SF
大CC
大CC
注册登录
关注博客
注册登录
主页
关于
RSS
C++11中对类(class)新增的特性
大CC
2015-09-02
阅读 4 分钟
4.8k
在我们没有显式定义类的复制构造函数和赋值操作符的情况下,编译器会为我们生成默认的这两个函数:默认的赋值函数以内存复制的形式完成对象的复制。这种机制可以为我们节省很多编写复制构造函数和赋值操作符的时间,但是在某些情况下,比如我们不希望对象被复制,在之前我们需要将复制构造函数和赋值操作符声明为private...
当优化扩展到多核时
大CC
2015-08-13
阅读 2 分钟
3.2k
上一篇文章我们聊了在单线程下程序优化的5个方向(ref:《程序优化的5个方向》);当单核优化到极值后,就到了多任务的情况; 想起来很清晰,单个任务分解成多个任务,让多个cpu同时来工作,并行执行,效率自然就上去了; 但,未必就这么简单;
程序优化的5个方向
大CC
2015-08-06
阅读 2 分钟
5.6k
80/20法则:程序执行中,80%的时间消耗在20%的代码上。 优化前,我们首先得找到这20%的关键路径; 各种语言都有专门的工具来找到这20%的关键路径,比如C++经常用到的gprof;
消除临时对象
大CC
2015-08-06
阅读 3 分钟
3.5k
在我们的代码中,有些临时对象正在使用而我们并未察觉; 性能优化时,消除临时对象,特别是大的临时对象,对提升性能效果明显; 这里列出常见的临时对象产生的地方:
清楚利弊,用好内联
大CC
2015-06-29
阅读 1 分钟
2.4k
清楚利弊,用好内联 内联的语法 在类声明中定义方法; 内联方法放在类声明之外,但必须出现在头文件中,且内联方法声明中使用inline标识; 注:inline只是对编译器的建议,是否内联的决定权在编译器; 内联节省的开销 函数调用开销 调用间优化 优秀的编译器可是内联方法的边界难以区分(将代码内联后,对代码进行重新排...
STL区间成员函数及区间算法总结
大CC
2015-06-28
阅读 4 分钟
6.2k
在这里总结下可替代循环的区间成员函数和区间算法; 相比单元素遍历操作,使用区间成员函数的优势在于: 1)更少的函数调用 2)更少的元素移动 3)更少的内存分配 在区间成员函数不适用的情况下也应该使用区间算法,至少,相比手写循环而言,它更加简单,有效,并且不容易出错; 区间成员函数 区间构造 标准容器都支持区...
Redis数据导入工具优化过程总结
大CC
2015-06-26
阅读 2 分钟
4.5k
使用C++开发了一个Redis数据导入工具 从oracle中将所有表数据导入到redis中; 不是单纯的数据导入,每条oracle中的原有记录,需要经过业务逻辑处理, 并添加索引(redis集合); 工具完成后,性能是个瓶颈;
高效使用 STL 的 11 个条款
大CC
2015-06-25
阅读 3 分钟
7.9k
STL基于拷贝的方式的来工作,任何需要放入STL中的元素,都会被复制; 这也好理解,STL工作的容器是在堆内开辟的一块新空间,而我们自己的变量一般存放在函数栈或另一块堆空间中;为了能够完全控制STL自己的元素,为了能在自己的地盘随心干活;这就涉及到复制; 而如果复制的对象很大,由复制带来的性能代价也不小 ; 对...
常用的STL查找算法
大CC
2015-06-10
阅读 4 分钟
5.5k
常用的STL查找算法 《effective STL》中有句忠告,尽量用算法替代手写循环;查找少不了循环遍历,在这里总结下常用的STL查找算法; 查找有三种,即点线面: 点就是查找目标为单个元素; 线就是查找目标为区间; 面就是查找目标为集合; 针对每个类别的查找,默认的比较函数是相等,为了满足更丰富的需求,算法也都提供了...
使用ansible批量管理远程服务器
大CC
2015-05-27
阅读 3 分钟
9.5k
远端服务器路径并非完全一致,一般访问通过环境变量中定义的变量路径访问; 比如在.bashrc中定义$app_path=/opt/app/bin
客户-服务器程序设计方法
大CC
2015-05-04
阅读 8 分钟
4.2k
示例是一个经典的TCP回射程序: 客户端发起连接请求,连接后发送一串数据;收到服务端的数据后输出到终端; 服务端收到客户端的数据后原样回写给客户端;
发布 《Linux工具快速教程》
大CC
2015-04-29
阅读 1 分钟
3.4k
Linux下有很多命令行工具供我们使用,每个工具总是提供了大量参数供我们选择; 实际工作中,我们用到的工具,最常用的总是那么几个参数组合; 为此,我写了这本书相对实用的书; 这本书专注于Linux工具的最常用用法,以便读者能以最快时间掌握,并在工作中应用;
IO设计模式:Reactor和Proactor对比
大CC
2015-04-28
阅读 3 分钟
39.8k
平时接触的开源产品如Redis、ACE,事件模型都使用的Reactor模式;而同样做事件处理的Proactor,由于操作系统的原因,相关的开源产品也少;这里学习下其模型结构,重点对比下两者的异同点;
C++ Redis mset 二进制数据接口封装方案
大CC
2015-02-08
阅读 5 分钟
8.1k
C++ Redis mset 二进制数据接口封装方案 需求 C++中使用hiredis客户端接口访问redis; 需要使用mset一次设置多个二进制数据 以下给出三种封装实现方案; 简单拼接方案 在redis-cli中,mset的语法是这样的: {代码...} 按照这样的语法拼接后,直接使用hiredis字符串接口redisCommand传递: {代码...} 这种方式可以处理mse...