由于某种原因,int在我的ram上重量超过32位

use*_*034 2 c++ memory windows visual-studio-2010 visual-c++

好的,所以我很想知道一个int实际上是否在我的ram上加权了4个字节.
所以我用这段代码赚了1,000,000英镑.

for(int i = 0;i < 1000000;++i)   
    int *as= new int;  
Run Code Online (Sandbox Code Playgroud)

在我执行这行代码之前,我先放了一个断点,看看我开始时有多少转换.
几乎没有头痛,我的程序以750 kb开始.

但是在我完成循环后,程序使用32,000 kb,如果一个int重32位,它的使用量为4,000 kb.
值得一提的另一件事是我使用ctrl+ altk + delete方法检查我的程序从ram中获取了多少空间,并且我在visual c ++ 2010 express上运行它.

我也很肯定我的电脑上的int是32位而不是64并不重要,因为即使它是64而不是32它应该是8,000 kb而不是32,000 kb.
所以也许你可以尝试在你的电脑上这样做,并告诉我你是否有相同的结果.

如果你知道我哪里出错了,请告诉我.

Dav*_*rtz 6

4字节的内存块太小而不值得管理.与提供共享高速缓存行的可能不相关的代码对象块相关联也可能存在性能损失.

典型的内存管理器的最小块大小介于16到256字节之间.此外,通常需要一些开销来跟踪已分配特定大小的块的事实.