size_t:size_t的全称应该是size type,就是说“一种用来记录大小的数据类型”。属于C99标准,...
分类:
编程语言 时间:
2014-08-22 19:46:49
阅读次数:
234
垃圾收集算法
一般来说,垃圾收集算法分为四类:最基础的算法便是标记-清除算法(Mark-Sweep)。算法分为“标记”和“清除”两个阶段:首先标记处需要收集的对象,在标记完成之后,再统一回收所有被标记的对象。
这是最简单的一种算法,但是缺点也是很明显的:一个是效率问题,标记和清除效率都不高。二是空间问题,清除之后会产生大量的空间碎片,导致之后分配大对象找不到足够的连续对象而不得不触发另一次垃圾收集动作。算法执行过程如下图。...
分类:
编程语言 时间:
2014-08-22 16:26:59
阅读次数:
211
递归与循环是两种不同的解决问题的典型思路。 递归算法: 优点:代码简洁、清晰,并且容易验证正确性。(如果你真的理解了算法的话,否则你更晕) 缺点:它的运行需要较多次数的函数调用,如果调用层数比较深,需要增加额外的堆栈处理,比如参数传递需要压栈等操作,会对执行效率有一定影响。但是,对于某些问题,如果不...
分类:
其他好文 时间:
2014-08-22 12:19:36
阅读次数:
199
首先堆栈和堆(托管堆)都在进程的虚拟内存中。(在32位处理器上每个进程的虚拟内存为4GB)堆栈stack 堆栈中存储值类型。堆栈实际上是向下填充,即由高内存地址指向地内存地址填充。堆栈的工作方式是先分配内存的变量后释放(先进后出原则)。堆栈中的变量是从下向上释放,这样就保证了堆栈中先进后出的规则不与...
分类:
其他好文 时间:
2014-08-22 10:49:45
阅读次数:
239
前一段时间总结了全排列问题的几种递归解法,今天再总结一下如何通过对系统栈行为的模拟来非递归的实现全排列问题。 我们用一个数组stack[]来表示一个栈,用一个top指针来表示栈顶,用一个flags[]数组来标示每一个数字的可用性;用i来表示当前的状态。 初始状态top=0;i=-1;f...
分类:
其他好文 时间:
2014-08-21 22:31:37
阅读次数:
206
转自:http://blog.csdn.net/mldxs/article/details/8652010一、inspect模块主要提供了四种用处:(1).对是否是模块,框架,函数等进行类型检查。(2).获取源码(3).获取类或函数的参数的信息(4).解析堆栈使用inspect模块可以提供自省功能,...
分类:
编程语言 时间:
2014-08-21 18:50:34
阅读次数:
295
原链接:http://blog.chinaunix.net/uid-24347760-id-1989578.html在突然听到这个名词后,在网上搜的。1.变长数组是分配在堆栈上的,其实从语义的角度也应该是这样,变长数组还是一个数组,还是一个局部变量,在c语言中,局部变量是分配在堆栈上的,malloc...
分类:
其他好文 时间:
2014-08-21 16:49:44
阅读次数:
134
本文只描述Http网络请求相关的信息,Https、Spdy、file、ftp、websocket等的类型只提及在哪里出现关系分支。 下面是加载流程的xmind导出图,最好另存为到本地用看图软件看。看图提示:从上往下是根据堆栈倒置过来画的流程“..."表示省略IPC机制的代码图中有一些地方省略了Callback机制的代码同一父节点表示在此父函数内按顺序执行大部分类名和函数名已代表了其功能和意义,还可...
分类:
移动开发 时间:
2014-08-21 13:26:54
阅读次数:
294
如题,队列和堆栈的区别首先这个问题是非常具有歧义的。堆栈其实是堆和栈,都是内存的不同区域。那么这里的堆栈,应该不是指内存,而是java.util.Stack(类).应该称之为栈。之所以叫堆栈,应该是某些人的理解问题。这里的队列,应该是java.util.Queue(接口)就是说,java集合中的两种...
分类:
其他好文 时间:
2014-08-19 23:56:05
阅读次数:
291
hive mapreduce 都会转成java。所以要用的java分析工具。当看到map或reduce 阶段运行缓慢,我们去线上找到mapreduce的进程:
1. top 发现进程:
2. top -Hp 32486 找到进程中cpu或mem磁盘消耗最高的线程:
3. 用jstack主要用来查看某个Java进程内的线程堆栈信息:
bin/jstack -F 26510
...
分类:
其他好文 时间:
2014-08-19 19:14:35
阅读次数:
291