heap-memory相关内容

g++ 可变大小数组没有警告?

int a;cin >>一个;int ints[a]; 为什么这在编译时不会抛出任何警告?我怎么知道这个数组什么时候实际使用的是堆还是栈? g++ -std=c++11 -Wall *.cpp -o main 解决方案 ISO C++ 不允许使用变长数组,g++ 很高兴地告诉你,如果你增加通过向它传递 -pedantic 标志来严格它. 使用 -pedantic 将发出有关违 ..
发布时间:2021-12-21 10:04:08 C/C++开发

EditText 导致内存泄漏

简介: 我有一个具有以下结构的应用程序:顶部操作栏 (ActionBarSherlock)下方的 ViewPagerIndicator(用于选项卡)ViewPager(托管片段) 我有一个问题,我的一个片段导致了相当大的内存泄漏.我将问题缩小到以下情况: 导致泄漏的片段除了在其 onCreateView 方法中膨胀布局之外什么都不做.这是通过以下方式完成的: return in ..

为什么要在堆上而不是堆栈上分配内存?

可能的重复: 什么时候最好使用堆栈而不是堆,反之亦然? 我已经阅读了一些关于堆与堆栈的其他问题,但他们似乎更关注堆/堆栈的作用,而不是您为什么要使用它们. 在我看来,堆栈分配几乎总是首选,因为它更快(只是移动堆栈指针而不是在堆中寻找可用空间),并且您不必手动释放分配的内存完成使用它.我可以看到使用堆分配的唯一原因是,如果您想在函数中创建一个对象,然后在该函数范围之外使用它,因为从函数 ..
发布时间:2021-12-21 10:02:37 其他开发

Java 拒绝启动 - 无法为对象堆保留足够的空间

背景 我们有大约 20 个 linux 刀片池.有些运行 Suse,有些运行 Redhat.ALL 共享 NAS 空间,其中包含以下 3 个文件夹: /NAS/app/java - 指向 Java JDK 安装的符号链接.当前版本 1.5.0_10 /NAS/app/lib - 指向我们应用程序版本的符号链接. /NAS/data - 写入输出的目录 我们所有的机器都有 2 ..
发布时间:2021-12-21 09:59:22 Java开发

什么是连续内存块?

就像标题一样,什么是连续内存块? 解决方案 一个地址没有任何空隙.你可能只是把它想成一个“块",而把中间有空隙的东西想成“两个块". 该术语出现在数组的定义中是“连续的".这意味着元素是端到端的,没有不连续性,它们之间没有填充(每个元素内部可能有填充,但元素之间没有填充).所以一个由 5 个 4 字节元素组成的数组看起来像这样(每字节 1 个下划线字符,| 符号不代表内存): _ ..
发布时间:2021-12-21 09:57:47 其他开发

“a"和“a"之间的关系是什么?堆和“the"堆?

堆是一种树数据结构,其中树的较高级别总是包含比较低级别更大(或更少,如果这样设置的话)的值.“堆"是程序可用于动态分配的一堆空闲 RAM.它们都被称为“堆",但是一个和另一个有什么关系? 解决方案 老实说,没什么.我可以想象 heap 这个词只是简单地与它的日常(非技术)用法一起使用,并作为相当好的类比单独应用于这两个概念. 在第一种情况下(树数据结构的含义),描述 heap 是最合 ..
发布时间:2021-12-21 09:55:49 其他开发

堆空间内存不足

我的应用程序当前消耗了大量内存,因为它正在运行物理模拟.问题在于,在第 51 次模拟时,Java 通常会因为堆空间内存不足而抛出错误(我的程序最终运行了数千次模拟). 无论如何我不能只增加堆空间而是修改我的程序,以便在每次运行后清除堆空间,以便我可以运行任意数量的模拟? 编辑:谢谢大家.结果模拟器软件在每次运行后都没有清除信息,我将这些运行全部存储在 ArrayList 中. 解 ..
发布时间:2021-12-21 09:55:38 Java开发

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

Ehcache 讨论堆内和堆外内存.有什么区别?使用哪些 JVM 参数来配置它们? 解决方案 堆上存储是指将出现在 Java 堆中(也受 GC)的对象.另一方面,堆外存储是指由 EHCache 管理的(序列化的)对象,但存储在堆外(也不受 GC).由于堆外存储继续在内存中管理,它比堆上存储略慢,但仍然比磁盘存储快. 关于off-heap store的管理和使用的内部细节在问题贴出的链 ..
发布时间:2021-12-21 09:54:09 Java开发

如何检测和删除(在会话期间)无法被垃圾收集的未使用的 @ViewScoped bean

EDIT:codebulb.ch 在这篇文章中很好地解释和确认了这个问题提出的问题,包括 JSF @ViewScoped、CDI @ViewSCoped 之间的一些比较,以及 Omnifaces @ViewScoped,以及 JSF @ViewScoped 是“设计泄漏"的明确声明:2015 年 5 月 24 日 Java EE 7 Bean 范围比较了 2 的第 2 部分 EDIT: 2017 ..
发布时间:2021-12-20 15:22:35 其他开发

如何在 IntelliJ IDEA 上增加内存堆大小?

我想分配大约 1GB 的堆大小,但我似乎无法弄清楚. 如何做到这一点? 解决方案 使用帮助 |编辑自定义虚拟机选项... 一个编辑器会自动打开正确的.vmoptions文件,调整-Xmx的值,保存并重启IntelliJ IDEA: 查看 IntelliJ IDEA 知识库中的这些文档以了解更多详细信息: 配置 JVM 选项和平台属性 无法启动 JVM.主方法可能抛 ..
发布时间:2021-12-18 10:03:11 其他开发

VirtualAlloc 和 HeapAlloc 之间有什么区别?

Windows 环境下分配内存的方法有很多,比如VirtualAlloc、HeapAlloc、malloc、new. 那么,它们之间有什么区别? 解决方案 每个 API 都有不同的用途.每一个都要求您在使用完内存后使用正确的释放/释放函数. 虚拟分配 一个低级的 Windows API,它提供了很多选项,但主要对处于相当特定情况下的人有用.只能在(编辑:不是 4KB)更大 ..
发布时间:2021-12-17 23:51:39 其他开发

如何优化关于构建持续时间和 RAM 使用的 gradle 构建性能?

我目前正在为我的多模块 Web 应用程序从 ant 切换到 gradle,目前看来当前版本的 Gradle (M9) 可能会遇到其限制.但也许(希望如此)这只是我对 Gradle 概念的理解不够好或不知道“神奇的性能提升开关"的问题.我很乐意提供有关如何优化构建性能的任何提示. 问题:在显示第一个 compileJava 前几分钟过去了,即使源代码中没有任何变化,该进程也会运行至少 7 分钟 ..
发布时间:2021-12-15 11:10:19 其他开发

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

我已经安装了 Android Studio 1.1.0.我还没有做任何事情,比如启动新的 Android 应用程序或导入任何东西.不知何故,它正在尝试构建某些东西并引发同步错误. 错误:无法启动守护进程.此问题可能是由守护程序的错误配置引起的.例如,使用了无法识别的 jvm 选项.请参阅 http://gradle.org/上的用户指南章节docs/2.2.1/userguide/gradl ..
发布时间:2021-12-15 10:29:48 移动开发

Visual Studio - 如何找到堆损坏错误的来源

鉴于在 Visual Studio 中分配的堆块“外部"写入的数据的内存地址,我想知道是否有一种好方法可以找到导致堆损坏错误的源代码; 专用 (0008) 空闲列表元素 26F7F670 大小错误(死) (尝试写一些关于如何查找内存错误的笔记) 解决方案 从安装windbg开始: http://www.microsoft.com/whdc/Devtools/Debuggi ..
发布时间:2021-12-14 08:57:37 其他开发

批评我的非侵入式堆调试器

这是对昨天的批评我的堆调试器的后续.按照 bitc 的建议,我现在将有关已分配块的元数据保存在单独的手写哈希表中. 堆调试器现在检测以下类型的错误: 内存泄漏(现在有更详细的调试输出) 传递给 delete 的非法指针(也处理双重删除) 错误的删除形式(数组与非数组) 缓冲区溢出 缓冲区下溢 欢迎讨论并提前致谢! #include #include #include # ..
发布时间:2021-12-14 08:46:03 C/C++开发

字符串文字在内存中的什么位置?堆栈/堆?

可能的重复: C 字符串文字:它们去哪里? 据我所知, 一般来说,指针必须是由 malloc() 分配,并将被分配堆,然后由 free() 取消分配; 和 非指针(int,char,float,etc..) 将是自动分配到堆栈,和未分配,只要函数转到返回 但是,从以下代码: #include int main(){字符 *a;a = "tesaja";返回0;} ..
发布时间:2021-12-13 13:24:41 其他开发

为什么不在 C++ 中对所有内容都使用指针?

假设我定义了一些类: class 像素 {上市:像素(){ x=0;y=0;};整数 x;输入 y;} 然后使用它编写一些代码.我为什么要执行以下操作? 像素p;p.x = 2;p.y = 5; 来自 Java 世界,我一直在写: Pixel* p = new Pixel();p->x = 2;p->y = 5; 他们基本上做同样的事情,对吧?一个在堆栈上,而另一个在堆上,所以我稍后必 ..
发布时间:2021-12-13 13:10:25 C/C++开发

当 Jenkins 作为守护进程在 Ubuntu 上运行时,如何给它更多的堆空间?

我的 Jenkins 作业内存不足,在构建日志中给出 java.lang.OutOfMemoryError 消息.但是我使用了 Ubuntu 包管理器、aptitude 或 apt-get 来安装 Jenkins,但我不知道在哪里可以更改分配给的堆空间量詹金斯. 解决方案 在 Jenkins 作业运行时,您可能会遇到两种类型的 OutOfMemoryError 消息: java.la ..
发布时间:2021-12-12 12:14:54 Java开发