memory-leaks相关内容

Android:如何分析本机堆转储?

我使用命令 dumpheap -n 创建了一个本地堆转储文件..该文件采用人类可读格式,但包含难以理解的信息.如何分析此文件并从中获取有用信息? 在函数名称的位置提供函数地址.映射在文件底部提供.是否有任何工具可以映射这些并使用函数/库名称而不是地址提供有意义的输出(加载库/函数的符号).如果没有,那么 ddms 如何做到这一点?另外如何加载符号以显示函数名称? 有什么方法 ..
发布时间:2021-11-27 22:30:29 移动开发

Leak Canary 使用 ViewPager2 检测 TabLayout 的内存泄漏

我按照官方文档设置了一个带有 ViewPager2 的 TabLayout.我以这种方式使用 TabLayoutMediator 将 TabLayout 与 ViewPager2 连接起来: TabLayoutMediator(binding.tabLayout, binding.viewPager) { tab, position ->tab.setIcon(getTabIcon(positi ..
发布时间:2021-11-27 22:12:39 移动开发

无法防止 SQLiteConnection 对象泄漏

在我的 Android 应用程序中,我有一些使用 SQLite 的数据库事务,但尽管尝试了多种方法来防止泄漏,但我还是遇到了 SQLiteConnection 对象泄漏.我几乎尝试过互联网上的每件事,比如关闭数据库、关闭游标或结束事务.以下是android studio中的警告. 数据库'/data/user/0/com.example.myapp/databases/myapp.dbnot ..
发布时间:2021-11-27 21:47:24 移动开发

Android:静态字段和内存泄漏

我一直在研究在创建视图时防止上下文/活动内存泄漏的最佳实践,但我似乎无法找到关于类中静态字段允许或不允许的明确答案. 假设我有一个这种形式的代码: public class MyOuterClass extends Activity{私人 MyInnerClass;MyInnerClass = (MyInnerClass) findViewById();MyInnerClass.myXIn ..
发布时间:2021-11-27 16:14:03 移动开发

通过导航组件导航替换其所在的片段后,片段中的 ViewPager2 泄漏

起初,我在 BottomNavigationView 和数据绑定的选项卡内遇到了 ViewPager2 的问题,数据绑定也会随着 ViewPager2 泄漏,应该在 onDestroyView 中被清零,泄漏并设法将问题缩小到 ViewPager2,同时使用 findNavController().navigate. 这是如何发生的,当我导航到另一个用 ViewPager2 替换当前片段时会 ..
发布时间:2021-11-27 13:56:25 移动开发

导航 Arch 组件是否会造成误报内存泄漏?

我对内存泄漏以及可能导致它们的原因有基本的了解.这就是为什么我不明白我的代码是否有问题还是误报.由于项目不小,不知道该分享哪一部分代码.但请在评论中告诉我,我会添加所需的代码. 我使用导航拱组件并遵循 MVVM 模式.我在项目开发后期添加了 LeakCanary 库,当我在屏幕之间导航时,它立即开始向我发出有关保留实例的警告. 当我将片段添加到返回堆栈时会出现问题.随着每个添加到返回堆 ..
发布时间:2021-11-27 13:54:23 移动开发

Android:AlertDialog 导致内存泄漏

我的应用程序显示了一个 AlertDialog,里面有一个 ListView.一切正常,然后我决定测试它是否存在内存泄漏.运行应用程序一段时间后,我打开了 MAT 并生成了 Leak Suspects 报告.MAT 发现了几个类似的漏洞: "" 加载的 "com.android.internal.app.AlertController$Recycle ..
发布时间:2021-11-27 13:33:20 移动开发

alsa - 内存泄漏?

我一直在寻找内存泄漏(由 'valgrind --leak-check=yes' 报告),它似乎来自 ALSA.这段代码在自由世界中已经有一段时间了,所以我猜这是我做错了. #include #include #include int main (int argc, char *argv[]){snd_ctl_t *句柄;int err = snd_ctl_open( &handle, "hw: ..
发布时间:2021-11-27 08:30:23 服务器开发

在内存中固定一个 DLL(增加引用计数)

我正在尝试运行一个应用程序,但该应用程序由于访问冲突而退出.在调试器中运行应用程序我可以看到这是由卸载的库引起的.我迫不及待地等待应用程序的下一个版本,所以我正在尝试解决这个问题. 我想知道 WinDbg 是否提供了一种增加加载模块的引用计数的方法,类似于 C++ LoadLibrary() 调用.然后我可以中断模块加载并增加受影响的 DLL 的引用计数,看看我是否可以使用该应用程序. ..
发布时间:2021-11-26 20:12:02 其他开发

泄漏抽象的含义?

术语“泄漏抽象"是什么意思?(请举例说明.我经常很难理解单纯的理论.) 解决方案 这里有一个 meatspace 示例: 汽车有司机的抽象.最纯粹的形式是方向盘、油门和刹车.这种抽象隐藏了很多引擎盖下的细节:发动机、凸轮、正时皮带、火花塞、散热器等. 这个抽象的巧妙之处在于,我们可以用改进的部分替换部分实现,而无需重新培训用户.假设我们用电子点火替换了分配器盖,我们用可变凸轮替 ..
发布时间:2021-11-26 17:22:11 其他开发

如何设置JVM的最大内存使用量?

我想限制JVM使用的最大内存.注意,这不仅仅是堆,我想限制这个进程使用的总内存. 解决方案 使用参数 -Xms -Xmx.在数字后使用 M 或 G 分别表示字节的 Megs 和 Gigs.-Xms 表示最小值,-Xmx 表示最大值. ..
发布时间:2021-11-25 16:56:52 Java Web开发

资源泄漏:“in"永远不会关闭

为什么 Eclipse 在下面的代码中给我温暖的“资源泄漏:'in'从未关闭"? public void readShapeData() {扫描仪输入 = new Scanner(System.in);System.out.println("请输入矩形的宽度:");宽度 = in.nextDouble();System.out.println("请输入矩形的高度:");高度 = in.nextD ..
发布时间:2021-11-25 15:31:12 Java Web开发

究竟什么时候使用(匿名)内部类是安全泄漏的?

我一直在阅读一些关于 Android 内存泄漏的文章,并观看了来自 Google I/O 关于该主题的有趣视频. 不过,我还没有完全理解这个概念,尤其是当它对用户活动中的内部类是安全或危险的时. 这是我的理解: 如果内部类的实例比其外部类(活动)存活时间更长,则会发生内存泄漏.-> 在什么情况下会发生这种情况? 在这个例子中,我认为没有泄漏的风险,因为扩展 OnClickL ..
发布时间:2021-11-25 15:04:00 Java Web开发

将 HeapDumpOnOutOfMemoryError 参数用于 JBoss 的堆转储

有人告诉我,我可以将 -XX:+HeapDumpOnOutOfMemoryError 参数添加到我的 JBoss 启动脚本的 JVM 启动选项中,以便在我们遇到内存不足错误时获取堆转储应用.我想知道这些数据在哪里转储?它只是到控制台,还是某个日志文件?如果只是到控制台,如果我不是通过控制台登录到Unix服务器怎么办? 解决方案 这里是 Oracle 的文档 不得不说: 默认情况下,堆 ..
发布时间:2021-11-25 14:55:26 Java Web开发

如何查找 Java 内存泄漏

您如何发现 Java 中的内存泄漏(例如,使用 JHat)?我尝试在 JHat 中加载堆转储以进行基本查看.但是,我不明白我应该如何找到根引用(ref) 或任何名称.基本上,我可以说有几百兆字节的哈希表条目([java.util.HashMap$Entry 或类似的东西),但是到处都在使用地图......有没有办法搜索大地图,或者可能找到大对象树的一般根? [编辑]好的,到目前为止我已经阅读 ..
发布时间:2021-11-25 12:32:12 Java Web开发

如何在 Java 中创建内存泄漏?

我刚刚接受了一次采访,要求我使用 Java 创建内存泄漏. 不用说,我什至不知道如何开始创建一个,我觉得很愚蠢. 一个例子是什么? 解决方案 持有对象引用的静态字段 [尤其是 final 字段] class MemorableClass {静态最终 ArrayList 列表 = 新 ArrayList(100);} 调用 String.intern() 在一个长字符串上 ..
发布时间:2021-11-25 11:03:00 Java Web开发

什么是 StackOverflowError?

什么是StackOverflowError,是什么导致的,我应该如何处理? 解决方案 参数和局部变量分配在栈上(引用类型,对象存在于堆> 和堆栈中的变量引用堆上的该对象).堆栈通常位于地址空间的上端,当它用完时,它会朝向地址空间的底部(即朝向零). 您的流程还有一个堆,它位于流程的底部.当你分配内存时,这个堆可以向你的地址空间的上端增长.如您所见,堆有可能与堆“碰撞"(有点像构造板块 ..
发布时间:2021-11-25 10:13:27 Java Web开发

ENOMEM 创建线程失败的原因?

我有一个应用程序在主线程中使用 pthread_create() 和 pthread_detach(),然后在子线程中使用 pthread_exit()线程. 在大约 54 个 pthread_create() 调用之后,每个调用都与后续的 pthread_detach() 和 pthread_exit() 配对,>pthread_create() 失败.ENOMEM 失败“内存不足". ..
发布时间:2021-11-25 07:20:26 C#