随笔分类 - C++
主要描述C++开发及调试方面的内容,包括常用的工具。
摘要:查看当前系统的glibc版本Ubuntu:/lib/i386-linux-gnu/libc.so.6SuSe:/lib/libc.so.6 ldd--version
阅读全文
摘要:一,可执行程序分析:objdump -h xxx,可以看到程序内部各个段的内存分布,结果如下(部分):26 .data 0000016c 0000000000879d20 0000000000879d20 00279d20 2**5 CONTENTS, ALLOC, LOAD...
阅读全文
摘要:1. 单线程业务处理能力70caps基本业务没有明显的高复杂度的算法,内存,网络均没有问题。因此初步排查是否数据库每条commit导致,结果却是如此。原因是因为disk的iops大概在70左右。2.业务处理200caps经过初步检视,有同事guard锁里面有情况sleep了。修改后解决。3.业务处理...
阅读全文
摘要:简介STL的 __pool_alloc, __mt_alloc,boost的pool系列, ace的ACE_Cached_Allocator均为定长内存池。说明内存池,根据存储的元素的长度是否可变,分为变长,与定长两种内存池。从逻辑上来讲,定长内存池只需存储相同大小的元素,因此无须花费额外的空间(数...
阅读全文
摘要:Added macros ACE_USES_GPROF which enables users to use gprof in a multithreaded environment with ACE libs.多线程开启gprof性能测试的简易方法(转)用到gprof时才知道,原来gprof只...
阅读全文
摘要:首先需要介绍一下,阅读此文需要有基本的汇编知识。1、rbp(基址寄存器),rsp(堆栈寄存器),rip(指令寄存器).2、程序执行时,没有遇到函数调用时,IP自增长,遇到函数调用时,需要保存bp,ip寄存器到栈上,函数调用结束时,恢复。(这个过程的细节需要很清楚)(注:因此需要简单描述一下,函数调用时的步骤。第一,将函数执行完成后的下一条指令的地址存放进当前rsp的位置,(即结束时,ret命令利用此信息恢复rip)第二,进入函数后,保存当前rsp到rbp寄存器中,原因是rsp需要随时变化(结束时,需要将堆栈位置还原) )两年前,有XX专家,来讲述了一下关于无堆栈信息core文件的定位方法。没有
阅读全文
摘要:unordered_map
阅读全文
摘要:forward_list
阅读全文
摘要:STL 对这个序列可以进行查找,插入删除序列中的任意一个元素,而完成这些操作的时间同这个序列中元素个数的对数成比例关系,并且当游标指向一个已删除的元素时,删除操作无效。而一个经过更正的和更加实际的定义应该是:一个集合(set)是一个容器,它其中所包含的元素的值是唯一的。这在收集一个数据的具体值的时候...
阅读全文
摘要:stack,顾名思义,表示栈,先进后出。
阅读全文
摘要:queue,顾名思义,是指队列。满足先进先出的原则。
阅读全文
摘要:deque,故名思义,双向队列。可以在头尾进行插入删除。而STL中采用了链表+线性表的数据结构来实现deque,因而除了满足双向队列的特点以外,还支持随机访问。下面,贴一段代码。总览:双向队列是由链式线性表+顺序线性表组成。支持随机访问首先看下定义: template > class d...
阅读全文
摘要:映射和多重映射基于某一类型Key的键集的存在,提供对T类型的数据进行快速和高效的检索。
阅读全文
摘要:就是一双向链表,可高效地进行插入删除元素。
阅读全文
摘要:vector是一种动态数组,是基本数组的类模板。vector,支持随机访问。在数据结构上,属于顺序线性表。而且,由于是动态数组,
阅读全文

浙公网安备 33010602011771号