首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跟踪z3内存泄漏

跟踪z3内存泄漏
EN

Stack Overflow用户
提问于 2013-06-21 20:37:24
回答 1查看 309关注 0票数 3

我们遇到了一些与似乎是内存泄漏相关的问题。我们将上下文与引用计数垃圾收集结合使用。以下是对这种情况的简短描述:

通过对最新的不稳定的ScalaZ3,我们创建了大量的重新计算上下文(400-500),在这些上下文上,我们减少了求解器(<5),检查了几个公式,然后删除了所有内容。在删除上下文之前,我们尝试对所有内容执行del-ref。我们看到的是内存占用不断增加(高达几Gb),即使我们一次只使用5或6个新的和小的上下文。

1)当上下文被删除时,Z3是否释放上下文中所有对象的内存?(即使是那些refcount >0的对象)如果不是,原因可能是我们忘记了对几个对象执行del-ref操作。

2)您是否有任何工具/提示可以帮助我们跟踪内存中的剩余内容。也许是在open_log生成的文件之上的一些东西?或者在gcc下回放日志的时候去哪里看?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-21 23:59:15

1)当上下文被删除时,Z3会释放一些内存,但我们不能保证当引用计数器未被正确使用时,所有内存都会被删除。

2)我通常使用Valgrind来跟踪内存泄漏。我认为这是令人惊讶的。我们可以在z3.log文件中创建执行日志,然后执行

代码语言:javascript
复制
       valgrind z3 z3.log

顺便说一句,在调试模式下编译也可能会有所帮助。在调试模式下,当上下文被删除时,Z3还将报告仍然有效的AST的列表。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17235412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档