标签: heap

内存分配:堆栈与堆?

我对Stack vs Heap之间的内存分配基础感到困惑.根据标准定义(每个人都说的东西),所有值类型都将被分配到堆栈,参考类型将进入.

现在考虑以下示例:

class MyClass
{
    int myInt = 0;    
    string myString = "Something";
}

class Program
{
    static void Main(string[] args)
    {
       MyClass m = new MyClass();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,内存分配将如何在c#中发生?MyClass(即m)的对象是否会完全分配给堆?也就是说,int myIntstring myString既会去堆?

或者,该对象将分为两部分,并将分配给两个内存位置,即堆栈和堆?

.net c# heap stack

79
推荐指数
4
解决办法
6万
查看次数

Java非常大的堆大小

有没有人有使用Java中12 GB或更高的大堆的经验?

  • GC是否使程序无法使用?
  • 您使用什么GC参数?
  • 哪个JVM,Sun或BEA更适合这个?
  • 哪种平台,Linux或Windows,在这种情况下表现更好?
  • 在Windows的情况下,在如此高内存负载下64位Vista和XP之间是否存在任何性能差异?

java heap performance garbage-collection

77
推荐指数
6
解决办法
6万
查看次数

VirtualAlloc和HeapAlloc之间有什么区别?

有很多方法在Windows环境中分配内存,如VirtualAlloc,HeapAlloc,malloc,new.

那么,它们之间的区别是什么?

memory heap winapi new-operator

77
推荐指数
5
解决办法
4万
查看次数

为什么不在C++中使用指针?

假设我定义了一些类:

class Pixel {
    public:
      Pixel(){ x=0; y=0;};
      int x;
      int y;
}
Run Code Online (Sandbox Code Playgroud)

然后使用它编写一些代码.我为什么要这样做?

Pixel p;
p.x = 2;
p.y = 5;
Run Code Online (Sandbox Code Playgroud)

来自Java世界我总是写:

Pixel* p = new Pixel();
p->x = 2;
p->y = 5;
Run Code Online (Sandbox Code Playgroud)

他们基本上做同样的事情,对吗?一个在堆栈上而另一个在堆上,所以我将在以后删除它.两者之间有什么根本区别吗?为什么我更喜欢一个呢?

c++ heap stack pointers

75
推荐指数
11
解决办法
1万
查看次数

如何使用android studio分析内存

最近从eclipse切换到android studio.如何检查android studio中的app堆和内存分配?在Eclipse中我们有MAT在工作室中有什么东西来检查堆转储,hprof文件?

heap android profiling heap-memory android-studio

72
推荐指数
3
解决办法
7万
查看次数

不同手机/设备和操作系统版本上的Android堆大小

有没有人知道Android手机上的堆大小是否是根据操作系统版本中设置的常量值,或者这是电话制作者可以决定的设置?

堆大小是否与手机上的RAM量成正比?

我只找到了人们说应用程序的堆大小为16M的文章.但是,这些文章有点陈旧.从我看来,作为一个例子,在一个特定型号上,堆大小从大约20M到24M不等.这款手机拥有768M的RAM.

heap android

71
推荐指数
6
解决办法
9万
查看次数

如何通过环境变量设置Java的最小和最大堆大小?

如何通过环境变量设置Java的最小和最大堆大小?

我知道在启动java时可以设置堆大小,但我希望在服务器上通过环境变量进行调整.

java heap environment-variables

70
推荐指数
5
解决办法
18万
查看次数

Max-Heapify中的最坏情况 - 你如何得到2n/3?

在CLRS,第三版,第155页,给出了在MAX-HEAPIFY中,

孩子们的子树每个都有2n/3的大小- 最坏的情况发生在树的底层正好是半满的时候.

我理解为什么当树的底层正好是半满时它是最糟糕的.并且在这个问题中也回答了MAX-HEAPIFY中的最坏情况:"最坏的情况发生在树的底层恰好是半满的时候"

我的问题是如何获得2n/3?

为什么如果底层是半满的,那么子树的大小是2n/3?

怎么计算?

谢谢

algorithm heap tree time-complexity

69
推荐指数
3
解决办法
2万
查看次数

Android:BitmapFactory.decodeStream()内存不足,带有2MB空闲堆的400KB文件

我的应用程序在源代码中的以下行遇到OOM错误:

image = BitmapFactory.decodeStream(assetManager.open(imgFilename));
Run Code Online (Sandbox Code Playgroud)

就在分配之前导致应用程序被OOM错误杀死:

(...)
08-05 21:22:12.443: I/dalvikvm-heap(2319): Clamp target GC heap from 25.056MB to 24.000MB
08-05 21:22:12.443: D/dalvikvm(2319): GC_FOR_MALLOC freed <1K, 50% free 2709K/5379K, external 18296K/19336K, paused 58ms
08-05 21:22:14.513: D/dalvikvm(2319): GC_EXTERNAL_ALLOC freed <1K, 50% free 2709K/5379K, external 18296K/19336K, paused 101ms
08-05 21:22:14.903: I/dalvikvm-heap(2319): Clamp target GC heap from 25.073MB to 24.000MB
08-05 21:22:14.903: D/dalvikvm(2319): GC_FOR_MALLOC freed 0K, 50% free 2709K/5379K, external 18312K/19336K, paused 53ms
08-05 21:22:22.843: D/ddm-heap(2319): Heap GC request
08-05 21:22:22.963: I/dalvikvm-heap(2319): Clamp target GC heap …
Run Code Online (Sandbox Code Playgroud)

heap android

65
推荐指数
3
解决办法
9万
查看次数

在C++中使用std :: allocator而不是new有什么好处?

我刚看过std::allocator.在我看来,使用它而不是使用new和更复杂delete.

随着allocator我们必须明确分配堆内存,构建它,消灭它,然后终于解除分配内存.那它为什么会被创造出来?

在哪些情况下可以使用它何时应该使用而不是新的和删除?

c++ heap alloc

63
推荐指数
7
解决办法
1万
查看次数