zoukankan      html  css  js  c++  java
  • 关于堆栈的一些问题

    我在CSDN 中的提问,高手的回答,解答了我许久的困惑,故记下来。

    请问64位系统中
    问题一,堆的大小是多少?堆的大小跟变量,如一个数组的大小有何关系?
    问题二,假设物理内存为1G,则程序中可操作的内存是多少?,允许生成多大的变量呢,例如我想把一个2G大小的文件读入程序,会出错吗?
    问题三,普通的生成的变量,跟用new生成的变量相比,后者有什么优势,或者说用new来控制内存分配的程序,有什么优点?

    回答

    64位不太熟悉,
    但是在32位和64位应该没有本质的区别:
    32位中,
    1.堆的大小默认是1m,可以调整编译选择改变,堆的大小和变量和数组没有关系;
    2.可以使用的是虚拟内存,程序员一般情况下没有办法直接操作物理内存,一般32位的操作系统,可以使用的内存在2g左右,
    可以通过调整到3g,但是不能超过4g。
    把一个2g的文件读入内存,不是什么好办法,建议使用文件内存映射。
    3.普通的生成的变量,是在堆栈(就是栈吧)上的,new出来的变量是在堆上的。
    后者的优点是比较灵活,可以由程序员控制,分配和回收。而且后者大小可以比较大。。。。。

    原帖的地址是 http://topic.csdn.net/u/20080520/22/9381f4f5-0653-464c-a509-541c731b4953.html

  • 相关阅读:
    unity3d工具栏介绍
    初识unity3d
    js模拟表单提交
    配置Appium环境
    html单选框 bootstrap模态框里面的单选框 和jq取值
    解决输入框总被浏览器记住的记录遮挡住的问题
    U盘
    python 字典列表/列表套字典 去重重复的字典数据
    ajax把数据return出去
    js把列表转换成字符串
  • 原文地址:https://www.cnblogs.com/bioinfo/p/1204307.html
Copyright © 2011-2022 走看看