में सरल समांतरता उदाहरण की आवश्यकता है, मैं एक ही समय में पर्ल 6 और समांतरता/समरूपता सीखने की कोशिश कर रहा हूं।पर्ल 6
एक साधारण शिक्षण अभ्यास के लिए, मेरे पास 550 '.htm' फ़ाइलों का एक फ़ोल्डर है और मैं उन सभी के बीच कोड की कुल योग चाहता हूं। अब तक, मेरे पास यह है:
use v6;
my $start_time = now;
my $exception;
my $total_lines = 0;
my @files = "c:/testdir".IO.dir(test =>/'.' htm $/);
for @files -> $file {
$total_lines += $file.lines.elems;
CATCH {
default { $exception = $_; } #some of the files error out for malformed utf-8
}
}
say $total_lines;
say now - $start_time;
यह लगभग 3 सेकंड में 577,44 9 की राशि देता है।
पर्ल 6 समांतरता विचारों का लाभ उठाने के लिए मैं इसे कैसे लिखूं? मुझे एहसास हुआ कि बचाया गया समय ज्यादा नहीं होगा लेकिन यह अवधारणा के सबूत के रूप में काम करेगा।
कुछ 'मेरी $ total_lines = [+] @ files.race.map (* लाइनें (।: ENC) .elems) जैसे', 'बिना .race' एक की तुलना में? –
Christoph
ग्रेट। .race के साथ औसत पर लगभग 2 सेकंड लग गए। बिना .्रेस के, औसत पर 2.6 सेकंड लगते हैं। – Herby