内存管理有三种方式:
1. 虚拟内存,VirtualAlloc之类的函数
2. 堆,Heapxxx函数,malloc,new等
3. 内存映射文件,Memory Mapped File
很多人都会困惑,但是看下面的图片就会比较明白了。这个图片从MSDN上拷来。
堆和虚拟内存,从上面的图片就可以看出,其实所谓的堆,也就是在虚拟内存上抽象出来的。如果直接用Virtualxxx系列函数,是...
分类:
移动开发 时间:
2014-09-19 17:40:55
阅读次数:
240
首先对表空间作如下说明
临时表空间:是在做大数据量排序时,分组操作时用的,正常这些都是在内存中完成的,但在大数据量排序处理时,内存不够用的情况下就会用到临时表空间,这里是不存放表的,有点类似于操作系统中的虚拟内存概念。
数据表空间:是存放表、索引等数据文件的表空间,顺带说下最好把表和索引分在不同的表空间中,这样性能会好很多。
用户指定表空间:其实只是对用户建表时候的表空间设定一个默认值,就是...
分类:
数据库 时间:
2014-09-19 17:39:17
阅读次数:
238
??
1操作系统会为每个进程分配0到4G的虚拟地址
2.关于虚拟内存和物理内存之间的关系
总结:
A程序管理内存的最小单位是page(4096Byte),如果需要的内存不够4096字节,实际上开辟的也是4096字节。
B每个程序对应独立的虚拟内存,调用的时候先找自己的虚拟内存,然后实质上是通过虚拟内存找物理内存。
C每个进程共享操作系统的kern...
分类:
其他好文 时间:
2014-09-16 00:22:59
阅读次数:
255
Linux虚拟内存的大小为2^32(在32位的x86机器上),内核将这4G字节的空间分为两部分。最高的1G字节(从虚地址0xC0000000到0xFFFFFFFF)供内核使用,称为“内核空间”。而较低的3G字节(从虚地址0x00000000到0xBFFFFFFF),供各个进程使用,称为“用户空间”。因为每个进程可以通过系统调用进入内核,因此,Linux内核空间由系统内的所有进程共享。于是,从具体进...
分类:
系统相关 时间:
2014-09-11 17:25:32
阅读次数:
267
redis的数据是保存在内存中的。随着系统的运行,redis的数据越来越多,会导致物理内存不足。通过使用虚拟内存(VM),将很少访问的数据交换到磁盘上,腾出内存空间的方法来解决物理内存不足的情况。 redis的VM只是把 value交换到磁盘中,而key依然存在内存中,是为了能够快速定位到va...
分类:
其他好文 时间:
2014-09-09 17:41:09
阅读次数:
169
1.在linux下,查看一个运行中的程序,占用了多少内存,一般的命令有 (1). ps aux: 其中 VSZ(或VSS)列 表示,程序占用了多少虚拟内存。 RSS列 表示, 程序占用了多少物理内存。 虚拟内存可以不用考虑,它并不占用实际物理内存。 (2). top 命令也可以 其中 VIRT(或V...
分类:
系统相关 时间:
2014-09-05 19:51:41
阅读次数:
385
首先堆栈和堆(托管堆)都在进程的虚拟内存中。(在32位处理器上每个进程的虚拟内存为4GB)堆栈stack 堆栈中存储值类型。堆栈实际上是向下填充,即由高内存地址指向低内存地址填充。堆栈的工作方式是先分配内存的变量后释放(先进后出原则)。堆栈中的变量是从下向上释放,这样就保证了堆栈中先进后出的规则不与...
分类:
其他好文 时间:
2014-09-05 15:54:21
阅读次数:
182
本文介绍了Java内存溢出的详细解决方案。本文总结内存溢出主要有两种情况,而JVM经常调用垃圾回收器解决内存堆不足的问题,但是有时仍会有内存不足的错误。作者分析了JVM内存区域组成及JVM设置虚拟内存的方式,从而给出了一系列解决方案。一、内存溢出类型1、java.lang.OutOfMemoryEr...
分类:
编程语言 时间:
2014-09-04 14:51:39
阅读次数:
185
问题的提出
pro1.c
#include
#include
main()
{
int *a=malloc(4);
*a=9999;
//*(a+1)=1000;
//*(a+1000)=10000;
printf("%p\n",a);
while(1);
}
gcc pro1.c -omain1 运行 main1 结果:0x8a01008
pro...
分类:
系统相关 时间:
2014-09-01 22:45:43
阅读次数:
275
Varnish CacheVarnish 是一款开源的HTTP加速器和反向代理服务器,它的主要特点有:(1)是基于内存缓存,重启后数据将消失。(2)利用虚拟内存方式,io性能好。(3)支持设置0~60秒内的精确缓存时间。(4)VCL配置管理比较灵活。(5)32位机器上缓存文件大小为最大2G。(6)具...
分类:
其他好文 时间:
2014-09-01 22:32:53
阅读次数:
377