gpt4 book ai didi

c - Devel::Size 报告子的大小

转载 作者:太空狗 更新时间:2023-10-29 15:58:18 26 4
gpt4 key购买 nike

我刚刚在读this来自 Gabor Szabo 的文章,他指出 Devel::Size 报告一个简单的 sub {} 被报告为需要 8,516 字节的空间。这个报告的尺寸是否正确?如果是这样,为什么 Perl 需要为单个空子程序分配这么多空间?

最佳答案

$ perl -MDevel::Size=total_size -E'
my $s = "x" x 100_000;
my $x = \$s;
my $y = \$s;
say total_size($x);
say total_size($y);
'
100048
100048

这是否意味着 $x$y 的大小加起来是 200KB?不,这里有同样的想法。

这不是子的大小,而是引用的大小,以及它直接和间接引用的所有内容。

$ perl -MDevel::Size=total_size -E'
sub f { } say total_size(\&f);
${"xxx"}=1; say total_size(\&f);
${"yyy"}=1; say total_size(\&f);
'
5847
5908
5969

如您所见,这不仅仅测量潜艇。似乎有一个指向子命名空间的指针。

关于c - Devel::Size 报告子的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21297037/

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