gpt4 book ai didi

memory - 防止极端内存使用

转载 作者:行者123 更新时间:2023-12-05 01:22:27 27 4
gpt4 key购买 nike

我的脚本逐行运行。每行的任务意味着使用语法,但并不太复杂。我注意到当输入有很多行时,比如 150_000,内存使用量很大,超过 6G,我的电脑挂了。我在较短的输入上使用了 --profile,但这让我不知道在哪里寻找解决方案。那里的大多数名字都没有提到我的代码。关于在哪里可以防止虚假内存使用或找出导致此问题的原因,有什么建议吗?

这是核心循环:

method process() {
my $promise = Promise.start({
&!start-handler();
my $intro = 1; # to skip the directory part of the file.
for $!source-name.IO.lines {
...
}
}).then({ $!DB.completed });
await $promise;
}

谢谢,西奥

最佳答案

我发现了一件造成严重破坏的事情。通过换行

m:g/ << $<funname>=<[A..Z]>+ '(' <{ %fun{$<funname>}++ }> /;

通过类似的东西

 if $formula ~~ m:g/ << $<funname>=<[A..Z]>+  '(' / {
for $/.list -> $funname {
%fun{$<funname>}++
};
}

脚本速度提高了无数倍并且运行没有问题。

但是,请参阅下面@JonathanWorthington 的 react 。我的结论:我应该使用:

m:g/ << $<funname>=<[A..Z]>+ '(' { %fun{$<funname>}++ } /;

同样,这曾经在以前的 rakudo 版本中起作用。这是基于 MoarVM 2020.01.1 版构建的 Rakudo 2020.01 版实现 Perl 6.d.

关于memory - 防止极端内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60757262/

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