heap不属于STL容器,它扮演者priority queue的助手。heap是一种完全二叉树,可由数组来实现,但heap需要动态改变大小,所以最终选择了vector作为底层容器。STL默认提供最大堆。
题外话:分析heap的源码就能清楚的理解堆这种数据结构的例程,而STL库代码的质量又很高,所以看堆的代码,STL源码是一个很好的选择。
为了满足完全二叉树的性质,新插入的元素一...
分类:
其他好文 时间:
2014-07-22 23:04:53
阅读次数:
363
A heap is a partially sorted binary tree.
Although a heap is not completely in order, it conforms to a sorting principle:
every node has a value less ...
分类:
其他好文 时间:
2014-05-09 17:34:18
阅读次数:
339
Dijkstra inAdjacency matrix :int Dijkstra(int
src,int tec, int n){ bool done[1005]; int d[1005]; memset(done,0,sizeof(done));
map[0][src] ...
分类:
其他好文 时间:
2014-05-08 09:35:51
阅读次数:
398
做项目的时候,MyEclipse提示内存不足。错误提示大概如下:MyEclipse has
detected that less than 5% of the 64MB of PermGen (Non-heap memory) space
remains. It is strongly recomm...
分类:
系统相关 时间:
2014-05-07 00:49:37
阅读次数:
558
Windows 堆溢出MS 没有完全公开 Windows 的堆管理细节,目前对 Windows
堆的了解主要基于技术狂热者、黑客、安全专家、逆向工程师等的个人研究成果。目前 Windows NT4/2000 SP4
上的堆管理策略基本(与攻击相关的数据结构和算法)研究清楚。堆溢出的重要研究者:Hal...
分类:
其他好文 时间:
2014-05-05 23:41:54
阅读次数:
646
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数...
分类:
编程语言 时间:
2014-05-05 23:23:31
阅读次数:
499
堆块分配时的任意地址写入攻击原理堆管理系统的三类操作:分配、释放、合并,归根到底都是对堆块链表的修改。如果能伪造链表结点的指针,那么在链表装卸的过程中就有可能获得读写内存的机会。堆溢出利用的精髓就是用精心构造的数据去溢出下一个堆块的块首,改写块首中的前向指针
Flink 和后向指针 Blink,然后...
分类:
其他好文 时间:
2014-05-05 09:47:29
阅读次数:
491
缘起
线上有Tomcat升级到7.0.52版,然后有应用的JVM FullGC变频繁,在高峰期socket连接数,Cpu使用率都暴增。
思路
思路是Tomcat本身的代码应该是没有问题的,有问题的可能是应用代码升级,或者环境改变了,总之Tomcat的优先级排在最后。
先把应用的heap dump下来分析下:
jmap -dump:format=b,file=path pid
用IB...
分类:
其他好文 时间:
2014-05-03 21:42:36
阅读次数:
382
官方地址
Jvm gcih
出自Jvm
跳转到:
导航,
搜索
目录
[隐藏]
1
GC-Invisible Heap
1.1
什么是GCIH1.2
为什么要用GCIH
1.2.1
GCIH + Hesper + Forest线上测试结果对比
2
GCIH内存共享
2.1
有关GCIH内存共享2.2
GC...
分类:
编程语言 时间:
2014-05-01 17:39:58
阅读次数:
320
该文章从优先队列的角度分析并实现了斐波那契堆,并与二叉堆实现的优先队列进行了比较。...
分类:
其他好文 时间:
2014-04-30 22:47:38
阅读次数:
256