系统调用与内存管理(sbrk、brk、mmap、munmap)(转)
摘要:一、系统调用(System Call):在Linux中,4G内存可分为两部分——内核空间1G(3~4G)与用户空间3G(0~3G),我们通常写的C代码都是在对用户空间即0~3G的内存进行操作。而且,用户空间的代码不能直接访问内核空间,因此内核空间提供了一系列的函数,实现用户空间进入内核空间的接口,这
阅读全文
posted @
2019-08-14 18:20
Dufe王彬
阅读(785)
推荐(0) 编辑
free()后内存不释放问题 - 内存缓冲池技术(转)
摘要:起因 下面这段代码执行后,内存有增无减,增加了200M,iOS平台200M不能接受了 // STL 集合类 void test1() { list<int> mList; for (int i=0; i<1000000; i++) { mList.push_back(i); } mList.clea
阅读全文
posted @
2019-08-14 15:23
Dufe王彬
阅读(3124)
推荐(0) 编辑
由STL map调用clear后,内存不返还给操作系统的问题出发,探讨glibc malloc/free行为(转)
摘要:1. 问题 我们的程序有几十个线程,每个线程拥有一个std::map,每个线程都要向自己的std::map中插入大量的数据,但每个数据只有几十字节;当使用完std::map,调用map.clear(),删除map里的所有元素,发现std::map所占内存没有返还给操作系统;甚至std::map析构后
阅读全文
posted @
2019-08-14 15:22
Dufe王彬
阅读(1397)
推荐(0) 编辑
cept源代码目录结构详解_知识树(转)
摘要:1 简介该代码架构基于版本10.0.5整理,先整理根目录里的代码,再整理出src目录的架构。 2 代码架构2.1 Ceph源码根目录Ceph的根目录下包含了一些文件夹和若干编译、代码格式相关的文件。 [admin]:架设Document服务器,包括依赖内容并介绍修改doc的流程。 [bin]:目前只
阅读全文
posted @
2019-04-11 13:45
Dufe王彬
阅读(416)
推荐(0) 编辑
一篇面经(BAT面试)(转)
摘要:0. 写在之前 首先呢我的面试经历和一些面霸和收割机的大神相比绝不算丰富,但我这三个月应该能代表很大一部分人的心路历程:从无忧无虑也无知的状态,然后遭遇挫败,跌入低谷,连续数天的黑暗,慢慢调整,逼着自己不能松懈,看到改变,收获肯定,分享经历。 先大概说下自己的面试经历吧(详细的面试过程和面试题解析在
阅读全文
posted @
2019-03-16 23:06
Dufe王彬
阅读(2087)
推荐(0) 编辑
去“BAT”这样面试,拿到offer的几率是80%(转)
摘要:一、概述面试,难还是不难?取决于面试者的底蕴(气场+技能)、心态和认知及沟通技巧。面试其实可以理解为一场聊天和谈判,在这过程中有心理、思想上的碰撞和博弈。其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他希望听到什么答案?”然后针对性的准备和回答就行了,无他。 “你的优势是什么?”多年前我觉得这
阅读全文
posted @
2019-03-16 23:04
Dufe王彬
阅读(219)
推荐(0) 编辑
去BAT,你应该要看一看的面试经验总结(转)
摘要:来源微信公众号『easyserverdev』 http://mp.weixin.qq.com/s/UZljzFMjobo1wzCguY7NDg 说下我的面试经验吧,都是亲身经历,不喜勿喷: 我去年12月份从上一家公司离职,一直到今年3月份,基本上都在面试中度过来的。先交代下背景:坐标上海,做技术开发
阅读全文
posted @
2019-03-16 23:04
Dufe王彬
阅读(164)
推荐(0) 编辑
epoll_wait 时 POLLERR 与 POLLIN 同时返回的现象解析(转)
摘要:今天code review时,同事B对我代码中的poll()的处理做法提出了异议。于是做了些研究,还发现了一些好玩的故事。 异议的代码 我的代码是参考manpage写的,类似下面的做法。同事B说没有处理POLLERR、而且应当使用else if。 OK。我赞同补充POLLERR的处理,但不赞同使用e
阅读全文
posted @
2018-04-17 11:38
Dufe王彬
阅读(604)
推荐(0) 编辑
C++11中std::forward的使用 (转)
摘要:std::forward argument: Returns an rvalue reference to arg if arg is not an lvalue reference; If arg is an lvalue reference, the function returns arg w
阅读全文
posted @
2017-09-12 14:00
Dufe王彬
阅读(1568)
推荐(0) 编辑
c++11新特性总结(转)
摘要:1、类型与变量相关 1.1、nullptr: 取代了NULL,专用于空指针 1.2、constexpr: 近似const, 可以修饰变量,也可以修饰函数, 修饰变量如: const int global = 100; int main () { int temp = 100; constexpr i
阅读全文
posted @
2017-09-08 14:23
Dufe王彬
阅读(7398)
推荐(1) 编辑
编写ios和android共用的c/c++库时 使用iconv的问题(转)
摘要:因为在项目中需要同时维护ios和Android,不同的代码不利于开发的便捷和以后的维护,所以在最近的一个项目中,两种手机应用的通信部分打算使用c/c++库来统一编写,ios调用.a静态库,android调用.so动态库的方式来实现。 由于通信时,从服务端获取到的中文数据为GBK编码,android和
阅读全文
posted @
2017-04-21 16:51
Dufe王彬
阅读(4572)
推荐(0) 编辑
深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p
摘要:由于没有const*运算,const实际上修饰的是前面的char*,但不能在定义时转换写成 const(char *)*p,因为在定义是"()"是表示函数。 三、深入理解7种组合 (0)程序 在执行时为其开辟的空间皆在内存(RAM)中,而RAM里的内存单元是可读可写 的;指针只是用来指定或定位要操作
阅读全文
posted @
2017-03-15 11:10
Dufe王彬
阅读(458)
推荐(0) 编辑
快速可靠网络传输协议 KCP(转)
摘要:KCP 是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。连时钟都需要外部传递进来,内部不会
阅读全文
posted @
2016-07-26 16:53
Dufe王彬
阅读(12348)
推荐(0) 编辑
【干货】国外程序员整理的 C++ 资源大全(转)
摘要:转zi:http://www.csdn.net/article/2014-10-24/2822269-c++ 关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz发起和维护。 内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 标准库 C++ Sta
阅读全文
posted @
2016-06-30 13:37
Dufe王彬
阅读(321)
推荐(0) 编辑
Lua中调用C函数
摘要:Lua利用一个虚拟的堆栈来给C传递值或从C获取值。每当Lua调用C函数,都会获得一个新的堆栈,该堆栈初始包含所有的调用C函数所需要的参数值(Lua传给C函数的调用实参),并且C函数执行完毕后,会把返回值压入这个栈(Lua从中拿到C函数调用结果)。 于此相关的C API有几个比较重要的定义如下: (1
阅读全文
posted @
2016-03-28 11:27
Dufe王彬
阅读(1123)
推荐(0) 编辑
C++ 用libcurl库进行http通讯网络编程(转)
摘要:目录索引: 一、LibCurl基本编程框架 二、一些基本的函数 三、curl_easy_setopt函数部分选项介绍 四、curl_easy_perform 函数说明(error 状态码) 五、libcurl使用的HTTP消息头六、获取http应答头信息 七、多线程问题 八、什么时候libcurl无
阅读全文
posted @
2016-03-08 16:28
Dufe王彬
阅读(330)
推荐(0) 编辑
SkipList 跳表
摘要:为什么选择跳表 目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树 出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树, 还要参考网上的代码,相当
阅读全文
posted @
2016-03-03 16:20
Dufe王彬
阅读(229)
推荐(0) 编辑
ntohs, ntohl, htons,htonl的比较和详解【转】
摘要:ntohs =net to host short int 16位 htons=host to net short int 16位 ntohs =net to host long int 32位 htonl=host to net long int 32位 简述: 将一个无符号短整形数从网络字节顺序转
阅读全文
posted @
2016-01-29 17:55
Dufe王彬
阅读(2889)
推荐(0) 编辑
epoll用法【整理】
摘要:lepoll是什么?epoll是当前在Linux下开发大规模并发网络程序的热门人选,epoll在Linux2.6内核中正式引入,和select相似,都是I/O多路复用(IO multiplexing)技术。Linux下设计并发网络程序,常用的模型有:Apache模型(Process Per Conn...
阅读全文
posted @
2015-12-18 17:52
Dufe王彬
阅读(411)
推荐(0) 编辑
智能指针--C++
摘要:智能指针(一):STL auto_ptr实现原理智能指针实际上是一个类(class),里面封装了一个指针.它的用处是啥呢?指针与内存说到指针自然涉及到内存.我们如果是在堆栈(stack)中分配了内存,用完后由系统去负责释放.如果是自定义类型,就会自动的去调用你的析构函数.但如果是在堆(heap)中分...
阅读全文
posted @
2015-12-16 17:26
Dufe王彬
阅读(223)
推荐(0) 编辑