gpt4 book ai didi

perl - 枚举 perl 解释器中的所有引用

转载 作者:行者123 更新时间:2023-12-05 08:12:11 26 4
gpt4 key购买 nike

手头的问题是查找内存泄漏。我使用 Devel::Refcount 来显示我的应用程序中的哪些对象在不应该保留在内存中时保留在内存中。

已经提出了三种方法来找到这些结构的难以捉摸的链接。

1 - 也许存在一个数据结构,可以让我获得引用我的对象的符号列表,这将是理想和直接的。

2 - 遍历所有已定义命名空间中的符号表以查找引用并使用迭代堆栈确定它的位置。

3 - 插入一个 Hook ,让我可以在特定引用的链接计数向上或向下更改时记录堆栈位置,以及保存链接的符号的地址。我可以使用它来查找哪些符号直接持有我的引用。

这可能吗?这种内省(introspection)是棘手的事情,我可能非常了解 perl,但我不知道该怎么做。我对 padwalker 的研究似乎有 key ,但没有取得成果。你的想法?

最佳答案

Test::LeakTrace怎么样? ?

#!perl
use Test::LeakTrace;

no_leaks_ok {
# Suspect code here
};

这会多次运行该 block ,然后如果解释器中的所有 Perl 值都增加,Test::LeakTrace 认为存在内存泄漏。

关于perl - 枚举 perl 解释器中的所有引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17244701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com