<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<b>upd: </b>perl slurp.pl big.txt 10000<br>
No encodings (Unix):<br>
Rate Unix_sub Unix<br>
Unix_sub 494/s -- -75%<br>
Unix 1965/s 298% --<br>
<br>
sub load_file_unix {<br>
my $filename = shift;<br>
open my $fh, '<:unix', $filename or die "Couldn't open
$filename: $!";<br>
read $fh, my $buffer, -s $fh or die "Couldn't read $filename:
$!";<br>
return $buffer;<br>
}<br>
say "No encodings (Unix):";<br>
cmpthese($count, {<br>
'Unix' => sub { open my $fh, '<:unix',
$filename or die "Couldn't open $filename: $!"; read $fh, my
$buffer, -s $fh or die "Couldn't read $filename: $!" },<br>
'Unix_sub' => sub { my $file_conents =
load_file_unix($filename) },<br>
});<br>
<br>
Так что победитель для использования в реальной жизни, видимо,
File::Slurp::Tiny.<br>
<br>
<br>
<br>
<div class="moz-cite-prefix">04.04.2015 17:49, Nick Knutov пишет:<br>
</div>
<blockquote cite="mid:551FDDF4.3020306@knutov.com" type="cite">
<pre wrap="">Обновил <a class="moz-txt-link-freetext" href="https://gist.github.com/knutov/8c9077790f925f1e336f">https://gist.github.com/knutov/8c9077790f925f1e336f</a>
27.02.2015 0:29, Maxim Vuets пишет:
</pre>
<blockquote type="cite">
<pre wrap="">On 26 February 2015 at 18:29, Nick Knutov <a class="moz-txt-link-rfc2396E" href="mailto:mail@knutov.com"><mail@knutov.com></a> wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Добавил в сравнение <a class="moz-txt-link-freetext" href="https://gist.github.com/knutov/8c9077790f925f1e336f">https://gist.github.com/knutov/8c9077790f925f1e336f</a>
</pre>
</blockquote>
<pre wrap="">Если интересно мерять разные всякие, тогда стоит добавить также:
- slurp_raw из Path::Tiny
- IO::All, <a class="moz-txt-link-freetext" href="https://metacpan.org/pod/distribution/IO-All/lib/IO/All.pod">https://metacpan.org/pod/distribution/IO-All/lib/IO/All.pod</a>
- File::Slurp::Tiny, <a class="moz-txt-link-freetext" href="https://metacpan.org/pod/File::Slurp::Tiny">https://metacpan.org/pod/File::Slurp::Tiny</a>
- ??? <a class="moz-txt-link-freetext" href="https://github.com/JRaspass/File-Slurp-XS">https://github.com/JRaspass/File-Slurp-XS</a>
А потом оформить в виде и стиле <a class="moz-txt-link-freetext" href="http://neilb.org/reviews/">http://neilb.org/reviews/</a> (-;
</pre>
<blockquote type="cite">
<pre wrap="">Внезапно, и не могу понять почему, с utf8 Path::Tiny быстрее, хотя с
latin1 наоборот, и в 4 раза медленнее.
</pre>
</blockquote>
<pre wrap="">Дикое поверхностное предположение: latin1 есть кодировка отличная от
той, что используется внутри perl-а для хранения данных, и
следовательно нужно перекодировать и проверять.
</pre>
</blockquote>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Best Regards,
Nick Knutov
<a class="moz-txt-link-freetext" href="http://knutov.com">http://knutov.com</a>
ICQ: 272873706
Voice: +7-904-84-23-130 </pre>
</body>
</html>