- 论坛徽章:
- 0
|
我正在输出一些ymal 数据到一个文件中,其中包括一些pdf和image文件也就是一些二进制的文件,所以我设置$YAML::Syck::ImplicitBinary = 1 ,但是我发现内存增长非常快最终出现了 out of memory ;如果不设置$YAML::Syck::ImplicitBinary 则程序能正常运行直到结束。而且我在每次dump以后也调用了undef %yaml; 去释放hash变量。 有人知道这是什么原因造成的?有解决方案吗? 由于代码太多了,我只贴了与dump yaml 数据有关的代码
use File::Slurp;
use YAML::Syck qw (Dump LoadFile Load);
use Data::Dumper;
$YAML::Syck::Sortkeys = 1;
$YAML::Syck::ImplicitUnicode = 1;
$YAML::Syck::ImplicitBinary = 1;
open YAML, ">>$file_name" or die $!;
while 循环条件{
my %yaml;
$yaml{'pdf_content'} = get_pdf_file($pdf_content);
$yaml{'images'} = \@{$images};
print YAML Dump(\%yaml)."...\n";
%yaml = ();
undef %yaml;
}while循环结束
close (YAML); |
|