排序:
默认
按更新时间
按访问量

降低redis内存使用与减少请求延迟

最近阅读了《Redis实战》,总结一下里面提到的一些优化的方法 如何降低Redis内存使用: 使用正确的数据结构 key长度越小占用内存越小(积少成多) value的值是否可以进行处理 部分数据结构在长度较小、个数较少的情况下会采用节省空间的算法存储,可以与sharding结合减少总内存...

2018-04-13 15:35:43

阅读数:120

评论数:0

lock-free编程

取之于网,用之于网

2018-03-16 22:52:12

阅读数:84

评论数:0

GDB(设置断点)

启动GDB后,首先就是要设置断点,程序中断后才能调试。在gdb中,断点通常有三种形式: 断点(BreakPoint): 在代码的指定位置中断,这个是我们用得最多的一种。设置断点的命令是break,它通常有如下方式: break     在进入指定函数时停住 break ...

2018-01-25 21:09:21

阅读数:260

评论数:0

mac xcode安装使用protobuf

安装 安装过程完全参照这里:https://www.jianshu.com/p/0a70eef1bd4a 贴一下: 怎么判断有没有安装过protobuf? 终端中执行:protoc --version``` ####如何安装 安装protobuf-2.4.1 下载链接: http://...

2018-01-25 21:04:30

阅读数:316

评论数:0

C++11研究vector插入元素尽量减少对象构造

在阅读之前可以可以先看这篇文章复习一下std::move与std::forward: 理解std::move和std::forward 背景 遇到以下场景,Bar类中有成员变量foo是Foo类的对象,在项目代码中需要申请一个Bar对象,给其中foo中的变量复制,并插入到vector中,定...

2018-01-11 21:33:00

阅读数:186

评论数:0

python连接自建redis服务器

步骤 先在linux机器上自建redis服务器 1.1. 先在官网下载了最新稳定版的源码压缩包http://download.redis.io/releases/redis-4.0.6.tar.gz, 1.2 解压,make,生成bin在src/下 1.3 执行 ./src/redis-...

2018-01-03 21:56:53

阅读数:223

评论数:0

控制反转与依赖注入

一、引述IoC(控制反转:Inverse of Control)是Spring容器的内核,AOP、声明式事务等功能在此基础上开花结果。但是IoC这个重要的概念却比较晦涩隐讳,不容易让人望文生义,这不能不说是一大遗憾。不过IoC确实包括很多内涵,它涉及代码解耦、设计模式、代码优化等问题的考量,我们打...

2017-09-01 14:47:44

阅读数:187

评论数:0

vs内存泄露检测方法

方法一、通过内存状态比较1、功能:可以检测某段代码间的内存泄露.2、描述: 若要确定代码中某一部分是否发生了内存泄漏,可以在该部分之前和之后对内存状态拍快照,然后使用 _CrtMemDifference 比较这两个状态: _CrtMemState s1, s2, s3; _CrtMem...

2017-03-22 12:27:02

阅读数:457

评论数:0

Boost::circular_buffer——循环缓冲区

一、概述Boost.Circular_buffer维护了一块连续内存块作为缓存区,当缓存区内的数据存满时,继续存入数据就覆盖掉旧的数据。 它是一个与STL兼容的容器,类似于 std::list或std::deque,并且支持随机存取。circular_buffer 被特别设计为提供固定容量的存储...

2017-03-22 11:37:50

阅读数:1351

评论数:0

git将当前分支上修改的东西转移到新建分支

比如我在A分支做了一些修改,现在由于某种原因(如A分支已经合并到master)不能把A分支上修改的东西保留下来但是需要把A分支上修改的东西继续在新分支继续修改。那么现在我们可以有两种简单的做法完成这一需求。 第一种方法 我们不需要在A分支做commit,只需要在A分支新建B分支,然后切...

2017-03-06 16:26:30

阅读数:3904

评论数:1

2>&1使用

2>&1使用 一 相关知识 1)默认地,标准的输入为键盘,但是也可以来自文件或管道(pipe |)。 2)默认地,标准的输出为终端(terminal),但是也可以重定向到文件,管道或后引号(backquotes `)。 3) 默认地,标准的错误输出到终端,但是也可以重...

2017-02-20 16:24:41

阅读数:204

评论数:0

网络编程:Reactor与Proactor的概念

1、标准定义 两种I/O多路复用模式:Reactor和Proactor 一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处理器(Event Handl...

2017-01-03 17:24:23

阅读数:219

评论数:0

SMP中多线程程序的性能衰退现象之False Sharing

这次我们来聊一聊多核CPU运行多线程程序时,可能会产生的一种性能衰退现象——False Sharing. 貌似很高大上?No No No,我相信看完这篇文章之后你会完全理解False Sharing,并且能够在设计和编写多线程程序的时候意识到并完美解决这个问题。 OK,我们开始吧。首先,Fals...

2016-11-29 22:35:47

阅读数:424

评论数:0

C++并发编程

C++11相比之前的版本具有很多优秀的特性,比如lambda表达式,初始化列表,右值引用,自动类型推导。同时,C++11标准库现在也支持正则表达式、智能指针、多线程库。但现代C++在并行和异步计算方面依然较为薄弱,特别是与C#等语言相比。异步的需要为什么需要支持异步呢?多核处理器几乎无处不在、并在...

2016-11-24 23:27:32

阅读数:4590

评论数:1

学习何时以及如何使用 POSIX AIO API

AIO 简介Linux 异步 I/O 是 Linux 内核中提供的一个相当新的增强。它是 2.6 版本内核的一个标准特性,但是我们在 2.4 版本内核的补丁中也可以找到它。AIO 背后的基本思想是允许进程发起很多 I/O 操作,而不用阻塞或等待任何操作完成。稍后或在接收到 I/O 操作完成的通知时...

2016-11-16 21:26:04

阅读数:359

评论数:0

【转】浅谈对协程的理解

我心中的协程最近在研究网络服务框架方面的东西,发现了一个神奇的东西-协程。一句话说明什么是线程:协程是一种用户态的轻量级线程。一句话并不能完全概括协程的全部,但是起码能让我们对协程这个概念有一个基本的印象。从硬件发展来看,从最初的单核单CPU,到单核多CPU,多核多CPU,似乎已经到了极限了,但是...

2016-11-16 15:10:10

阅读数:560

评论数:0

在Linux下判断系统当前是否开启了超线程

在判断当前是否开启了超线程之前,需要先判断另外几个数据: 1,物理CPU个数: 1 2 3 [root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | s...

2016-11-11 11:33:23

阅读数:3625

评论数:0

Linux下cp目录下的带隐藏文件的子目录

何在Linux下拷贝一个目录呢?这好像是再简单不过的问题了。 比如要把/home/usera拷贝到/mnt/temp,首先想到的就是cp -R /home/usera/* /mnt/temp但是这样有一个问题,/home/usera下的隐藏文件都不会被拷贝,子目录下的隐藏文件倒是会的。那如何才是...

2016-10-20 14:53:49

阅读数:4804

评论数:0

vsnprintf和snprintf

vsnprintf和snprintf是C语言printf家族函数的成员,相关函数列表如下:#include <stdio.h> int printf(const char *format, ...); //输出到标准输出 int fprintf(FILE *...

2016-10-12 14:16:24

阅读数:7009

评论数:0

gtest与gmock学习资料

玩转Google开源C++单元测试框架Google Test系列(gtest)之三 - 事件机制Google Mock 入门

2016-09-27 17:13:01

阅读数:385

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭