memory-management相关内容

cuda - 零拷贝内存,内存映射文件

我正在尝试创建一个包含 uint32_ts 的映射内存文件,然后将其用作 CUDA 的零拷贝固定内存,如下所示.我在获取设备指针、分配空间并从文件映射内存时得到 cudaErrorInvalidValue.我知道错误消息(来自 API)意味着: 这表明传递给 API 调用的一个或多个参数不在可接受的值范围内. 但我很难弄清楚为什么我会遇到这个问题......有什么想法吗?提前致谢. ..
发布时间:2022-01-10 15:57:51 其他开发

分析我的代码(开源)和第 3 方代码(闭源)的内存使用情况的最佳策略

我很快将负责对用 C/C++ 编写并使用 CUDA 来利用 GPU 处理的代码进行适当的内存配置. 我最初的想法是创建宏和运算符重载,以便我在源代码中跟踪对 malloc、free、delete 和 new 的调用.我将能够包含不同的标题,并使用 __FILE__ 和 __LINE__ 宏将内存调用打印到日志文件.这种类型的策略可以在这里找到:http://www.almostinfinit ..
发布时间:2022-01-10 15:52:09 C/C++开发

CUDA 在 __device__ 函数中分配内存

CUDA 有没有办法在设备端函数中动态分配内存?我找不到任何这样做的例子. 来自 CUDA C 编程手册: B.15 动态全局内存分配 void* malloc(size_t size);无效自由(无效* ptr); 从全局内存中的固定大小堆动态分配和释放内存. 内核中的 CUDA malloc() 函数从设备堆中分配至少 size 个字节,并返回一个指向已分配内存的指针,如 ..
发布时间:2022-01-10 15:49:33 其他开发

一个结构的 cudaMalloc 和一个相同结构的元素

我想知道当我分配一个结构然后 allocate(?) 并复制同一结构的指针元素时设备上会发生什么(内存方面). 我还需要元素 *a 的 cudaMalloc 吗? 示例代码: typedef 结构 {诠释*一个;...结构A;主函数(){整数行,列,numS = 10;//在运行时定义StructA *d_A = (StructA*)malloc(numS * sizeof(Stru ..
发布时间:2022-01-10 15:30:55 C/C++开发

在 CUDA 中的设备内存上分配二维数组

如何在 Cuda 的设备内存中分配和传输(与主机之间)二维数组? 解决方案 我找到了解决这个问题的方法.我不必展平阵列. 内置的 cudaMallocPitch() 函数完成了这项工作.我可以使用 cudaMemcpy2D() 函数将数组传入和传出设备. 例如 cudaMallocPitch((void**) &array, &pitch, a*sizeof(float), ..
发布时间:2022-01-10 15:29:25 其他开发

Java“为"语句实现防止垃圾收集

UPD 21.11.2017:该错误已在 JDK 中修复,请参阅 Vicente Romero 的评论 总结: 如果 for 语句用于任何 Iterable 实现,则集合将保留在堆内存中,直到当前范围(方法、语句体)结束,并且即使您没有对集合的任何其他引用并且应用程序需要分配新内存,也不会被垃圾回收. http://bugs.java.com/bugdatabase/view_b ..

了解 iPhone 上的内存消耗

我正在使用 OpenGL ES 开发一款 2D iPhone 游戏,但我一直在达到 24 MB 内存限制 - 我的应用程序不断崩溃并显示错误代码 101.我非常努力地想找到内存的去向,但 Instruments 中的数字仍然比我预期的要大得多. 我使用 Memory Monitor、Object Alloc、Leaks 和 OpenGL ES 工具运行应用程序.当应用程序加载时,可用物理内存 ..
发布时间:2022-01-09 08:56:43 移动开发

增加 sas 内存/memsize

您有一个包含大约 6000 个 obs 和 250 个变量的数据集.我正在尝试使用 proc mixed 在 sas 中运行混合模型,但我不断收到“错误:sas 系统因内存不足而停止处理此步骤".我尝试了康奈尔大学的方式 - http://www.ciser.cornell.edu/FAQ/SAS/MemoryAllocation.shtm ,但它不能在“属性"下工作,它不允许我修改“目标". ..
发布时间:2022-01-08 17:26:05 其他开发

如何清除要被垃圾收集的对象(HashMap) - Java

所以我在这里拥有的是一个 java 程序,它处理大量数据并将其存储到对象中(主要是哈希映射).在运行时间的某个时间点,数据变得无用,我需要丢弃,以便释放一些内存. 我的问题是丢弃这些数据以进行垃圾收集的最佳行为是什么? 我已经尝试了 map.clear(),但是这不足以清除地图分配的内存. 编辑(添加我尝试过的替代方案) 我也尝试过 system.gc() 来强制垃圾收集器 ..
发布时间:2022-01-08 14:34:12 Java开发

Java HashMap 与 ArrayList 相比的内存开销

我想知道 java HashMap 与 ArrayList 相比的内存开销是多少? 更新: 我想提高搜索一大包(6 百万以上)相同对象的特定值的速度. 因此,我正在考虑使用一个或多个 HashMap 而不是使用 ArrayList.但我想知道 HashMap 的开销是多少. 据我了解,key没有被存储,只有key的hash,所以应该是对象的hash大小+一个指针. 但 ..
发布时间:2022-01-08 13:50:19 Java开发

jBoss 4.0.2 多次部署相同的 WAR 会导致 jBoss 由于 PermGem/Out-of-Memory 错误而崩溃

我开发 Web 应用程序并使用 jBoss 4.0.2,当我用 Eclipse 重新部署我的 WAR 几次时,jBoss 会因为内存不足而崩溃.当我必须在生产环境中安装新版本时,它会消耗生产服务器的内存,所以这意味着我必须停止 jBoss 以防止重新部署客户服务器的内存.有没有办法解决这个问题? 解决方案 基本上没有.由于 JBoss 类加载器的工作方式,每次部署都会使用一部分永久代,即使 ..
发布时间:2022-01-07 12:24:25 Java开发

如何找到任何对象使用的内存

类帮助{上市:帮助();〜帮助();typedef std::set条款;typedef std::map>术语表;typedef std::multimap>条款地图;私人的:TermMap 条款;条款地图}; 我们如何找到term 和termsMap 对象使用的内存(以字节为单位).我们有图书馆吗? 解决方案 如果您正在寻找对象的完整内存使用情况,这在 C++ 中通常无法解决 - 而 ..
发布时间:2022-01-07 11:51:18 C/C++开发

强制解包在同一行代码中可选访问的变量是否安全?

someFunction(completion: { [weak self] inself?.variable = self!.otherVariable}) 这总是安全吗?我在语句的开头访问了可选的 self,我个人认为如果 self 是 nil.这是真的?如果self 确实是nil,那么第二部分永远不会发生?并且永远不会发生 self 在这行代码中被“nilled"的情况? 解决方案 ..
发布时间:2022-01-06 23:18:47 移动开发

为什么 NULL/0 是对象的非法内存位置?

我了解 C/C++ 中 NULL 常量的用途,并且我了解它需要在内部以某种方式表示. 我的问题是:对于 C/C++ 中的对象来说,0 地址是无效的内存位置是否有一些根本原因?或者我们是否理论上因为这个保留而“浪费"了一个字节的内存? 解决方案 空指针实际上不必为 0.在 C 规范中保证,当在指针的上下文中给出常量 0 值时,它是编译器将其视为 null,但是如果您这样做 char ..
发布时间:2022-01-06 23:18:00 C/C++开发

在java中清除或设置空对象

我最近在研究释放 Java 对象占用的内存.这样做时,我对 Java 中如何复制对象(浅/深)以及如何避免在对象仍在使用时意外清除/无效感到困惑. 考虑以下场景: 将 ArrayList 作为参数传递给方法. 将 ArrayList 传递给线程处理的可运行类. 将 ArrayList 放入 HashMap. 现在在这些情况下,如果我调用 list = null; 或 list ..
发布时间:2022-01-06 23:05:31 Java开发

Release、Dealloc 和 Self 引用

所以我想我已经弄清楚了所有这些问题.然后突然间我收到一个我无法弄清楚的错误(崩溃).然后在进行研究以修复崩溃之后,我发现我认为我对这些关键领域的了解有些错误. 以下是我将要提出的 8 个问题,希望有人能回答——这些问题的答案将极大地帮助我重新理解我的理解.提前致谢! Q1) 如果引用为 nil,可以对对象调用 Release 吗?这应该是无害的,对吧? Q2) 如果该引用已被释放 ..
发布时间:2022-01-06 23:00:52 移动开发

重新分配后如何将新内存清零

在调用 realloc 后将新内存归零同时保持初始分配的内存完好无损的最佳方法是什么? #include #include #include #include size_t COLORCOUNT = 4;typedef 结构 rgb_t {国际r;国际g;国际b;} rgb_t;rgb_t** 颜色;void addColor(size_t i, int r, int g, int b) {rg ..
发布时间:2022-01-06 22:59:25 其他开发

Android:位图、软引用和 OOM?

我在垂直 LinearLayout 中有一系列视图.当滚动到时,每个视图都会生成并绘制一个位图.出于性能原因,我宁愿不在每次调用 onDraw() 时都生成位图,但出于内存原因,我不能保留对位图的硬引用.我可以使用有关我应该采取的策略的建议. 我已经尝试了明显的路线:生成位图,然后用 SoftReference 包装它.这失败有两个原因.1. 参考资料的收集速度比我预期的要快得多.2. 我还 ..

使用 1 Mb 堆的奇怪位图

出于好奇,我最近使用 Eclipse 内存分析器测试了我的 Android 应用的内存泄漏. 我遇到了一个大小为 512 x 512 像素的奇怪位图,占用了大约 1 MB 的设备堆内存. 我检查了我的 drawables 文件夹,但找不到该尺寸 (512 x 512) 的位图. 我开始使用谷歌搜索并遇到了这个问题,其中一位用户解释了如何在内存分析器中获取“内存泄漏"引用背后的实际 ..