Tôi đang cố gắng tìm hiểu Perl 6 và song song/đồng thời cùng một lúc.Cần ví dụ song song đơn giản trong Perl 6
Đối với một bài tập học tập đơn giản, tôi có một thư mục 550 '.htm' tệp và tôi muốn tổng số dòng mã trong số tất cả chúng. Cho đến nay, tôi có điều này:
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;
Điều đó cho tổng số 577.449 trong khoảng 3 giây.
Làm cách nào để viết lại để tận dụng các ý tưởng song song Perl 6? Tôi nhận ra thời gian được lưu sẽ không nhiều nhưng nó sẽ hoạt động như một bằng chứng về khái niệm.
một cái gì đó như 'tôi $ total_lines = [+] @ files.race.map (* dòng (:. Enc) .elems)', so với một mà không có '.race'? –
Christoph
Tuyệt vời. Với .race mất trung bình khoảng 2 giây. Nếu không có .race, trung bình mất 2,6 giây. – Herby