什么是堆,什么是栈,什么是数据段,什么是代码段...这些都是历史遗留问题,如今编程真的没有必要在意这些了!不要被/proc/xx/{maps,smaps}里面的内容所迷惑和萦绕,自己管理好自己的内存分配就好,如果程序不是自己写的,那么就找写它的人。本文将从一个链接动态库的可执行文件如何载入进程地址空间开始,谈一下我对进程地址空间布局的看法。我没有采用精确的方式描述ELF或PE文件如何载入的,而仅仅...
分类:
其他好文 时间:
2014-05-18 18:23:26
阅读次数:
378
java虚拟机规范规定的java虚拟机内存其实就是java虚拟机运行时数据区,其架构如下:
' v:shapes="_x0000_i1029">
其中方法区和堆是由所有线程共享的数据区。
Java虚拟机栈,本地方法栈和程序计数器是线程隔离的数据区。
Java官方定义:http://www.98ki.com/servlet/HomeServlet?method=get&id=53...
分类:
编程语言 时间:
2014-05-18 18:20:57
阅读次数:
420
今天运行了一个比较大的程序,处理的数据达到126MB数据,将数据导入数据库中,用eclipse 来访问时候,总是出现java.lang.OutOfMemoryError:Java heap space的错误,上网查了一些资料,原来是堆栈溢出的状况,eclipse默认的情况下,堆栈的空间应该是64MB, 所以有时候处理的数据的时候,容易出现堆栈溢出的情况,下面总结了几种方法,解决这个问题。
...
分类:
编程语言 时间:
2014-05-18 15:53:30
阅读次数:
274
个人认为重点写出max_heapify和parent_heapify两个函数即可,这个版本内存管理的功能显得特别简单:
#include
#include
using namespace std;
class Heap {
public:
int size, capacity;
int *ele;
void max_heapify(int i,int heap[],int len...
分类:
其他好文 时间:
2014-05-18 15:15:29
阅读次数:
220
能使用STL的sort系列算法的前提是容器的迭代器必须为随机迭代器。所以,vector和deque天然适用。STL的sort算法采用了一些策略,在不同情况下采用不同的排序算法,以达到各种算法优势互补的效果。基本的原则是:数据量大时采用快速排序,数据量小时采用插入排序(这是对快排常用的一种优化策略),递归层次过深改用堆排序。
首先是插入排序。它的平均和最坏时间复杂度都为O(N²),量级小于...
分类:
其他好文 时间:
2014-05-18 14:40:31
阅读次数:
241
??
主流算法:
1.搜索 //回溯
2.DP(动态规划)
3.贪心
4.图论 //Dijkstra、最小生成树、网络流
5.数论 //解模线性方程
6.计算几何 //凸壳、同等安置矩形的并的面积与周长
7.组合数学 //Polya
定理
8.模拟
9.数据结构 //并查集、堆
10.博弈论
...
分类:
其他好文 时间:
2014-05-18 07:25:00
阅读次数:
316
#include
#define MAX_TASKS 2 //任务槽个数.必须和实际任务数一至
#define MAX_TASK_DEP 12 //最大栈深.最低不得少于2 个,保守值为12.
unsigned char idata task_stack[MAX_TASKS][MAX_TASK_DEP];//任务堆栈.
unsigned char idata task_sp[MA...
分类:
其他好文 时间:
2014-05-18 05:12:43
阅读次数:
339
JVM-栈2012-09-17
15:43:53分类:Java原文转自:http://www.blogjava.net/nkjava/archive/2012/03/15/371971.htmlJVM栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;JVM堆解决的是数据存储的问题,即数据怎么...
分类:
其他好文 时间:
2014-05-18 02:44:09
阅读次数:
323
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1848题目简单描述为:1、这是一个二人游戏;2、一共有3堆石子,数量分别是m,
n, p个;3、两人轮流走;4、每走一步可以选择任意一堆石子,然后取走f个;5、f只能是菲波那契数列中的元素(即每次只能取1...
分类:
其他好文 时间:
2014-05-17 20:04:35
阅读次数:
192