0
Erlang引用计算大型二进制文件并创建子二进制文件,以防止在垃圾回收期间释放引用的二进制文件。查找erlang二进制引用
我可以看到在观察者或二郎所分配的二进制量:存储器()
的问题是,跟踪其中较大的二进制是来自被证明是具有挑战性的。是否有任何特定的技术或工具可用于查找引用的数据以进行检查,或者通过跟踪最初创建引用的功能?
Erlang引用计算大型二进制文件并创建子二进制文件,以防止在垃圾回收期间释放引用的二进制文件。查找erlang二进制引用
我可以看到在观察者或二郎所分配的二进制量:存储器()
的问题是,跟踪其中较大的二进制是来自被证明是具有挑战性的。是否有任何特定的技术或工具可用于查找引用的数据以进行检查,或者通过跟踪最初创建引用的功能?
erlang:process_info/2
call与第二个参数binary
可能会有所帮助,但一般来说,你应该看看Recon library,因为我相信它可以帮助你做到这一点。它的作者FredHébert在他的博客中发布了highly useful article about using it。
我知道这是一个非常古老的问题,但你能解决这个问题吗?我查看了Recon图书馆,但我无法真正找到解决大型二进制文件来自哪里的方法。我遇到类似的问题,并且遇到问题找到任何适用的解决方案。 – twined
如果你正在处理大量的二进制数据,这是Erlang最棘手的问题之一。 Recon会将您指向泄漏引用的进程,您也可以使用bin_opt_info进行编译,这可能会给您一些提示。我积极休眠处理大量二进制文件的进程,并且非常小心二进制文件:copy()32字节或更多的数据。在我的例子中,大部分的问题是将较大的二进制文件的小块插入到记录或映射结构中,这不允许将较大的二进制文件清除出去。 – MattyB