gpt4 book ai didi

perl - Perl 中的字符串操作有多快?特别是串联和赋值

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

Perl 中的字符串连接有多快?它与第二个操作数的长度成线性关系吗?如果是这样,这个操作是线性的需要满足什么条件?非线性连接时间的例子有哪些?

那么字符串赋值呢?缓冲区的实际副本何时何地发生?

其他操作如子字符串或简单的正则表达式呢?

最佳答案

这是一个非常复杂的问题,答案取决于很多因素(架构、底层操作系统、硬件、Perl 编译标志等)

要获得一个想法,您可以查看用于表示变量的 perl 结构的内部结构。好的来源是perlguts illustrated .

如果您有具体的实现,请尝试对您的代码进行基准测试:

use Benchmark qw(:all);

my $a = "Some string";
my @b = map { "Some string to append " x $_ } (1..10);

cmpthese(-1, {
( map {+ "concat_$_" => sub { my $c = $a . $b[$_] } } (1..10) )
});

上面的东西比较操作 my $c = $a 。 $b 用于第二个参数的不同长度。从结果可以看出,对于这个长度范围,操作大致以线性时间运行。

关于perl - Perl 中的字符串操作有多快?特别是串联和赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5388594/

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