out-of-memory - ArrayFire CPU,它会因为迟到的GC而耗尽内存吗?
问题描述
我不完全确定 ArrayFire 在使用 CPU 模式时如何管理 RAM 上的内存。根据任务管理器的观察,RAM上的设备内存似乎没有立即释放,看起来像是有一个GC阶段。
这是真的?
如果我想在 GC 没有释放设备内存 (RAM) 的情况下分配大量 RAM,会发生什么?我会用完 RAM 吗?还是会以某种方式触发 GC?
我在分配主机内存(不是设备内存)时遇到了内存问题,我仍然试图找出问题所在。同时,GC是否真的存在于CPU模式,如果GC触发得太晚会导致内存不足吗?我应该如何解决这个问题?
谢谢
解决方案
ArrayFire 将缓存分配并在以后的操作中重用它们。基于一些启发式或分配失败,ArrayFire 将调用垃圾收集器。您可以通过调用deviceGC来手动运行垃圾收集器,这将释放未锁定(未使用)的内存。
推荐阅读
- c - 用 C 编写的 UEFI 二进制文件在 UEFI 中运行时不会选择文本文件
- java - Java 拼字游戏积分计算器
- javascript - 角度输入密码自动填充在移动浏览器上不起作用
- .net-3.5 - Windows Server 2019 中的 NetFx3 安装
- javascript - 如何.deferReply 到指定频道?
- reactjs - 有没有办法通过与另一个数组进行比较来绑定表中的名称而不是 id
- java - AnyLogic内存错误:如何知道超出阈值多少?
- python - pyspark 数据框使用列名制作地图值
- javascript - 在 Redux 中从 Supabase 获取数据,给了我一个我无法解决的 Promise
- c# - 如何使用 resourcekey Google Drive API 获取文件?