Tag:

我什么时候想要使用堆?

除了优先级队列的明显答案外,在编程冒险中,堆何时会有用?

Android Gradle无法为对象堆预留足够的空间

我已经安装了Android Studio 1.1.0。 我还没有做任何事情,像开始新的Android应用程序或导入任何东西。 不知何故,它试图build立一些东西,并引发同步错误。 错误:无法启动守护进程。 这个问题可能是由于守护进程的configuration不正确造成的。 例如,使用无法识别的jvm选项。 有关守护进程的用户指南章节,请参阅http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html 请阅读以下过程输出以了解更多信息: 虚拟机初始化期间发生错误无法为对象堆预留足够的空间无法创buildJava虚拟机。 我已经在gradle.org/…/gradle_daemon.html检查,但找不到任何帮助我解决问题的东西。 这不是一个内存问题,因为我有8GB的物理内存,没有其他程序运行。

VirtualAlloc和HeapAlloc有什么区别?

有很多方法可以在Windows环境中分配内存,如VirtualAlloc , HeapAlloc , malloc , new 。 那么,他们之间有什么不同呢?

Java非常大的堆大小

有没有人有在Java中使用非常大的堆,12 GB或更高的经验? GC是否使程序无法使用? 你使用什么GC参数? 哪个JVM,Sun或BEA会更适合这个? 哪个平台,Linux或Windows,在这样的条件下performance更好? 在Windows的情况下,在如此高的内存负载下,64位Vista和XP之间会有什么性能差距?

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

假设我定义了一些类: class Pixel { public: Pixel(){ x=0; y=0;}; int x; int y; } 然后使用它编写一些代码。 我为什么要做下面的事情? Pixel p; px = 2; py = 5; 来自Java世界,我总是写: Pixel* p = new Pixel(); p->x = 2; p->y = 5; 他们基本上做同样的事情,对吧? 一个在栈上,另一个在堆上,所以我将不得不删除它。 两者有什么根本的区别? 为什么我应该比另一个更喜欢?

是否可以*在分配的内存上使用free()?

我正在学习计算机工程,还有一些电子课程。 我从我的两位教授(这些课程)听说,有可能避免使用free()函数(在malloc() , calloc()等之后),因为分配的内存空间可能不会再被使用分配其他内存。 也就是说,例如,如果你分配了4个字节然后释放它们,你将有4个字节的空间可能不会再被分配:你将会有一个漏洞 。 我觉得这很疯狂:你不能在没有释放它的情况下在堆上分配内存,而不能有一个非玩具程序 。 但是我没有足够的知识来解释为什么对每个malloc()必须有一个free() 。 所以:有没有在不使用free()情况下使用malloc()情况? 如果没有,我怎么能向我的教授解释呢?

“堆上”和“堆外”的区别

Ehcache 谈论堆内和堆外存储器。 有什么不同? 用什么JVM参数来configuration它们?

命令行工具来查找Java堆大小和使用的内存(Linux)?

是否有命令行工具(Linux)检查Java应用程序的堆大小(和已用内存)? 我试过jmap。 但它给信息。 关于像Eden / PermGen等内部记忆区域,这对我没有用处。 我正在寻找像这样的东西: 最大内存:1GB 最小内存:256 MB 堆内存:700 MB 使用的内存:460 MB 就这样。 我知道我可以看到这在JConsole等,但我需要一个命令行工具(不能启用JMX等) 任何这样的工具/命令?

堆与二进制search树(BST)

堆和BST有什么区别? 何时使用堆以及何时使用BST? 如果你想以sorting的方式获取元素,BST是否比堆更好?

数组,堆和堆栈和值types

int[] myIntegers; myIntegers = new int[100]; 在上面的代码中,是新的int [100]在堆上生成数组? 从我读过的CLR通过C#,答案是肯定的。 但是我不能理解的是,在数组里面发生了什么。 因为它们是值types,所以我想它们必须被装箱,例如,将myInteger传递给程序的其他部分,并且如果它们始终保留在堆栈上,就会混乱堆栈。 还是我错了? 我想他们只是装盒子,只要arrays存在就会活在堆上。