gpt4 book ai didi

multithreading - 可以在Perl中使用线程来提高哈希键匹配的速度吗?

转载 作者:行者123 更新时间:2023-12-03 12:52:23 25 4
gpt4 key购买 nike

可以使用线程来提高哈希键匹配的速度吗?
我有一个包含前1个Mil alexa网站的哈希。将约100个唯一的主机与alexa哈希进行匹配所需的时间比我想要的要长得多。什么/最合适的方式/位置引入线程来加快处理速度?

foreach my $host (keys %unique_hosts) {      
if ($host =~ /(([\w\-]+)\.([\w\-]+))$/) {
my $domain = $1;
$in_alexa++ if /$domain$/ ~~ %alexa_sites;
}
}

编辑:Mem看起来还可以。
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 
7533 user 20 0 457m 339m 1676 R 99.0 34.2 0:15.31 bind.pl

最佳答案

对于每个主机,您都在进行一百万次正则表达式匹配。这就是为什么它很慢。

是的,线程可以通过使用其他未使用的CPU内核来提供帮助。但这不是正确的解决方案。

我假设您正在尝试检查$host%alexa_sites的 key 还是%alexa_sites中的 key 的子域。

for my $host (keys %unique_hosts) {      
while (1) {
if (exists($alexa_sites{$host})) {
++$in_alexa;
last;
}

$host =~ s/^[^.]*\.//
or last;
}
}

现在,您正在执行300次快速哈希查找,而不是100,000,000次慢速正则表达式匹配。

关于multithreading - 可以在Perl中使用线程来提高哈希键匹配的速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24558840/

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