为了告知操作系统这个应用程序可以支持/3GB方式,我们需要往exe 文件头中添加一个 IMAGE_FILE_LARGE_ADDRESS_AWARE 标志.添加的方式很简单: 在你的系统的 Program Files\Microsoft Visual Studio 8\VC\bin 目录下找到 editbin 这个可执行文件,在命令行下执行: editbin /LARGEADDRESSAWARE yourapplication.exe 这里的yourapplication.exe 需要输入的是你的…
http://msdn.microsoft.com/zh-cn/library/ms189334.aspx 进程地址空间 所有 32 位应用程序都有 4 GB 的进程地址空间(32 位地址最多可以映射 4 GB 的内存).对于 Microsoft Windows 操作系统,应用程序可以访问 2 GB 的进程地址空间,称为用户模式虚拟地址空间.应用程序拥有的所有线程都共享同一个用户模式虚拟地址空间.其余 2 GB 为操作系统保留(也称为内核模式地址空间).所有操作系统版本(从 Windows 20…
注意类大小与结构体大小还是有一些不同的,类里面还包含成员函数(特别是虚函数),结构体中一般只有数据成员. 首先明确各数据类型占多大的空间.例如int到底是占2字节还是4字节空间: 在TC里,int是2字节的(主要是因为TC是16位的,所以int类型也该是16位的)VC++里,int是4字节的,因为现代操作系统下的软件大多是是32位.64位的VC++,本来按理说,该是8字节的,但是可能为了维持32位的源代码移植到64位尽量不出错,所以也维持了4字节的长度.至于其他有名的编译器,如gcc,我还没用过…
Redis 小白指南(三)- 事务.过期.消息通知.管道和优化内存空间 简介 <Redis 小白指南(一)- 简介.安装.GUI 和 C# 驱动介绍> 讲的是 Redis 的介绍,以及如何在 Windows 上安装并使用,一些 GUI 工具和自己简单封装的 RedisHelper. <Redis 小白指南(二)- 聊聊五大类型:字符串.散列.列表.集合和有序集合>讲的是 Redis 中最核心的内容,最常用的就是和数据类型打交道. 目录 事务 过期时间 消息通知 管道 优化内存空间…
数据类型 js常用数据类型分为基本类型和引用类型 基本类型:null.undefined.数值型.字符串型.布尔型 引用类型:数组.对象 内存空间 var a = [1, 2, 3]; var b = a; b[2] = 4; a; // ?? 我们都知道结果是[1, 2, 4],因为b和a指向了同一个引用对象所以都可以改变该对象的值,我们用内存空间来深入理解一下. 我们知道在内存中存在两块区域,一个是栈stack,一个是堆heap. 通常我们的基本数据类型存储在栈中,而我们的引用数据类型存于堆…
这是我在公众号(高级前端进阶)看到的文章,现在做笔记 https://mp.weixin.qq.com/s/x4ZOYysb9XdT1grJbBMVkg 今天介绍的是JS内存空间,了解内存空间中的堆和栈原理对于理解JS闭包.Event Loop等有很大帮助 知识点:某些情况下,调用堆栈中函数调用的数量超出了调用堆栈的实际大小,浏览器会抛出一个错误终止运行. 对于下面的递归就会无限制的执行下去,直到超出调用堆栈的实际大小,这个是浏览器定义的. function foo() { foo(); } f…
大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(方法区) ,Heap(堆) , Program Counter Register(程序计数器) ,   VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的),Native Method Stack  ( 本地方法栈 ),其中Method Area 和  Heap 是线程共享的  ,VM Stack,Native Method Stack  和Program Counter Register  是非线程共享的.为什…
运行时数据区: 运行时数据区主要分五块,分别是Method Area , VM Stack , Native Method Stack , Heap , program Counter Register. Program Counter Register : 程序计数器是一小块内存空间,可以看作是当前线程所执行字节码的行号指示器.字节码解释器工作就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,各类基础功能也都是要依赖这个计数器来实现. Java虚拟机的多线程是通过线程之间轮流切换并分…
不知道从什么时候开始,chrome浏览器就这样不知不觉的超过IE浏览器成为全球第一大浏览器.我们在赞赏chrome浏览器流畅的速度时,更多的是对其chrome插件功能的赞赏.但是我们也发现了一个致命的缺点:chrome标签页打开太多,电脑就会很卡.由于Chrome 采用了标签页单进程设计,所以当我们使用 Chrome 同时打开多个标签页浏览网页时,系统内存占用也将大大增加.这就是人们经常抱怨的Chrome内存占用太多的问题.虽然说使用太多的chrome插件,浏览器的速度会有影响,但是有哦没有可以…
堆数据结构 堆数据结构是一种树状结构.它的存取数据的方式与书架和书非常相似.我们只需要知道书的名字就可以直接取出书了,并不需要把上面的书取出来.JSON格式的数据中,我们存储的key-value可以是无序的,因为顺序的不同并不影响我们的使用,我们只需要关心书的名字. 队列 队列是一种先进先出(FIFO)的数据结构,这是事件循环(Event Loop)的基础结构. 变量的存放 首先我们应该知道内存中有栈和堆,那么变量应该存放在哪里呢,堆?栈? 1.基本类型 --> 保存在栈内存中,因为这些类型在内…