(1)I spent my 4th year Computing project on implementing time series forecasting for Java heap usage prediction using ARIMA, Holt Winters etc, so I mi...
分类:
其他好文 时间:
2014-12-18 22:10:07
阅读次数:
303
一、程序的内存分配
一个由C/C++编译的程序占用的内存分为以下几个部分 :
1、栈区(stack)—— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap)—— 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
3、全局区...
分类:
其他好文 时间:
2014-12-18 20:41:14
阅读次数:
170
[1] push_heap:默认为大根堆,主要是上滤操作。
[2] make_heap:创建堆,默认构建大根堆。他的实现基于这样一个简单的想法:将二叉树中的每个仅二层的子树都构成堆,那么整个数据集的布局几乎即可以满足堆的定义。
[3] pop_heap:将已构成堆的迭代器区间中最大值元素移到区间的最后元素位置。原来的最后元素调整为根结点元素后,再对除最后一个元素之外的区间调整...
分类:
编程语言 时间:
2014-12-18 15:13:55
阅读次数:
192
JAVA中创建字符串的两种方式的区别,通常在Java中创建一个字符串会有两种方式,通过双引号直接赋值和通过构造器来创建。建议在平时的应用中,应尽量使用String x = "abcd"这种方式来创建字符串,而不是String x = new String("abcd"); 因为用new构造器的方式肯定会开辟一个新的heap堆空间,而双引号的方式则是采用了String interning(字符串驻留)方式进行了优化,效率会比构造器的方式高。...
分类:
编程语言 时间:
2014-12-17 21:03:06
阅读次数:
198
VisualVM是JDK的一个集成的分析工具,自从JDK 6 Update 7以后已经作为Sun的JDK的一部分。
VisualVM可以做的:监控应用程序的性能和内存占用情况、监控应用程序的线程、进行线程转储(Thread Dump)或堆转储(Heap Dump)、跟踪内存泄漏、监控垃圾回收器、执行内存和CPU分析,保存快照以便脱机分析应用程序;同时它还支持在MBeans上进行浏览和操作。尽管 ...
分类:
编程语言 时间:
2014-12-17 09:11:00
阅读次数:
328
经典排序算法 - 堆排序Heap sort
堆排序有点小复杂,分成三块
第一块,什么是堆,什么是最大堆
第二块,怎么将堆调整为最大堆,这部分是重点
第三块,堆排序介绍
第一块,什么是堆,什么是最大堆
什么是堆
这里的堆(二叉堆),指得不是堆栈的那个堆,而是一种数据结构。
堆可以视为一棵完全的二叉树,完全二叉树的一个“优秀”的性质是,除了最底层之外,每一层都是满的,这使得堆可...
分类:
编程语言 时间:
2014-12-16 13:35:14
阅读次数:
219
Shallow Heap和Retained Heap这两个名词在Java内存分析时经常遇到。本博文是Eclipse Memory Analyzer中关于Shallow Heap和Retained Heap帮助文档的翻译。 Shallow Heap是被一个对象消费的内存。Retained Heap是指X的Retained Set中所有对象的Shallow Size和。...
分类:
其他好文 时间:
2014-12-15 09:06:52
阅读次数:
249
php的内存管理由zend引擎处理分为三个层次接口层-》heap层-》存储层(malloc)PHP底层对内存的管理, 围绕着?块内存列表(free_buckets)、 ?块内存列表(large_free_buckets)和 剩余内存列表(rest_buckets)三个列表来分层进?的。 ZendMM...
分类:
Web程序 时间:
2014-12-14 13:10:12
阅读次数:
209
当我开始学习Java编程时,我不知道什么是堆内存或堆空间,我甚至不知道当对象创建时,它们被放在了哪里。当我开始正式写一些程序后,我会经常遇到java.lang.outOfMemoryError的报错,之后我才开始关注什么是堆内存或者说堆空间(heap space)。对大多数程序员都经历过这样的过程,...
分类:
编程语言 时间:
2014-12-13 12:14:03
阅读次数:
179
斐波那契堆简介斐波那契堆(Fibnacci Heap)有两种用途:第一,支持一系列操作,这些操作构成了所谓的可合并堆。第二,其一些操作可以在常数时间内完成,这使得这种数据结构非常适合于需要频繁调用这些操作的应用。可合并堆(Mergeable Heap)支持如下五种操作:Make-Heap(), In...
分类:
其他好文 时间:
2014-12-12 20:33:23
阅读次数:
311