大内高手—序

转载 2006年06月25日 09:53:00

大内高手

 

我一直认为作为一个在linux下工作的C程序员,若对内存有深刻的认识,不但程序的性能会更高,运行更稳定,编程速度也会更快。反之亦有相反的效果,有时一些内存错误让你摸不着头脑,不但大大降低开发速度,开发出来的软件稳定性也值得怀疑。

 

为了提高组员的编程水平,去年我制定了一系列的培训计划,并负责主讲部分重要课程,其中基础类课程中,有一堂关于内存的课程。当时的讲稿写得很粗略,后来的新同事说看不明白,我决定重新整理一下,放在BLOG,希望对新手有所帮助。

 

至于文章的标题,基本上是为了搞笑。最近重温星爷经典《大内密探零零发》,这是以大内高手作为文章的标题原因之一。另外也可以这样理解,内指内存,至于大字,修饰内存指其容量大,修饰内存高手形容水平很高,两种理解都可以。

 

其中包括下列文章:

 

1.         大内高手内存模型

单线程模型

多线程模型

 

2.         大内高手/

       backtrace的实现

       alloca的实现

       可变参数的实现。

       malloc/free系列函数简介

       new/delete系列操作符简介

      

3.         大内高手全局内存

       .bss说明

       .data说明

       .rodata说明

       violatile关键字说明

       static关键字说明

       const 关键字说明

 

4.         大内高手内存分配算法

       标准C(glibc)分配算法

       STL(STLPort)分配算法

       OS内部分配算法(伙伴/SLAB

 

5.         大内高手惯用手法

       引用计数

       预先分配

       内存池

       会话池

      

6.         大内高手共享内存与线程局部存储

7.         大内高手自动内存回收机制

8.         大内高手常见内存错误

9.         大内高手常用调试工具

大内高手—栈/堆

大内高手—栈/堆 l         栈 栈作为一种基本数据结构,我并不感到惊讶,用来实现函数调用,这也司空见惯的作法。直到我试图找到另外一种方式实现递归操作时,我才感叹于它的巧妙。要实现...
  • xjbclz
  • xjbclz
  • 2016年06月29日 22:47
  • 98

大内高手--调试手段及原理

大内高手--调试手段及原理     知其然也知其所以然,是我们《大内高手》系列一贯做法,本文亦是如此。这里我不打算讲解如何使用boundschecker、purify、valgrind或者gdb,...
  • sunnylgz
  • sunnylgz
  • 2013年02月25日 11:07
  • 803

求解旋转图像的最大内接矩形

在机器学习和深度学习中,通常使用为了增加数据(Data Augmentation)可以对数据进行例如一系列的旋转(rotate)、镜像(flip)等操作,本文将讲解如何求取旋转图像的最大内接矩形问题。...
  • YhL_Leo
  • YhL_Leo
  • 2016年05月27日 12:45
  • 4313

教你怎样成为C++高手

1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》(C++编程思想,翻译的非常差); 3.看《The C++ Program...
  • hellokandy
  • hellokandy
  • 2016年10月24日 11:07
  • 486

MATLAB:定位手掌最大内切圆

最近要做的一件事就是:对于一份给定的手掌图,要定位可寻的最大内切圆。做了近12个小时,才终于解决了这个问题,下面记录一下过程。 1、图片在MATLAB里是个矩阵,如何在矩阵作圆: fu...
  • liaocs2008
  • liaocs2008
  • 2013年03月06日 11:20
  • 3560

opencv:求区域的内接矩形

实验室项目中,希望求取一个近似圆形区域的质心,原本使用最小外接圆的质心来等效为该区域质心。但是由于部分区域的形状过于不规则导致发生质心偏移现象。如下图:     蓝色为实际要求质心。红色为等效圆质心 ...
  • cfqcfqcfqcfqcfq
  • cfqcfqcfqcfqcfq
  • 2016年11月08日 17:09
  • 2888

成为java高手的八大条件

成为java高手的八大条件
  • javaniuniu
  • javaniuniu
  • 2016年07月16日 13:56
  • 1069

成为高手的必经之路——学会调试代码(菜鸟必读)

任何一个编程者都少不了要去调试代码,不管你是高手还是菜鸟,调试程序都是一项必不可少的工作。一般来说调试程序是在编写代码之后或测试期修改Bug 时进行的,往往在调试代码期间更加能够体现出编程者的水平高低...
  • yhzhang1016
  • yhzhang1016
  • 2014年01月15日 11:10
  • 817

编程高手无捷径

想成为编程高手,想必是每个程序员的愿望。当你发现某个角落冒出个大牛时,除了深深的膜拜,只好自叹不如啊。话说1个优秀程序员能顶10个普通程序员,这让你更想成为人人敬仰的高手了。编程高手犹如武林高手一般,...
  • booirror
  • booirror
  • 2013年12月01日 13:37
  • 5454

卓越的教练是如何训练高手的

http://blog.csdn.net/fyyy4030/article/details/8467043 卓越的教练是如何训练高手的?    编者按:我们知道,优秀的运动员除了自身的天赋...
  • xinpo66
  • xinpo66
  • 2013年01月29日 11:16
  • 2042
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:大内高手—序
举报原因:
原因补充:

(最多只允许输入30个字)