[Moscow.pm] Альтернативы File::Slurp

Nick Knutov mail на knutov.com
Сб Апр 4 06:03:38 PDT 2015


*upd: *perl slurp.pl big.txt 10000
No encodings (Unix):
           Rate Unix_sub     Unix
Unix_sub  494/s       --     -75%
Unix     1965/s     298%       --

sub load_file_unix {
    my $filename = shift;
    open my $fh, '<:unix', $filename or die "Couldn't open $filename: $!";
    read $fh, my $buffer, -s $fh or die "Couldn't read $filename: $!";
    return $buffer;
}
say "No encodings (Unix):";
cmpthese($count, {
    '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: $!" },
    'Unix_sub'          => sub { my $file_conents =
load_file_unix($filename) },
});

Так что победитель для использования в реальной жизни, видимо,
File::Slurp::Tiny.



04.04.2015 17:49, Nick Knutov пишет:
> Обновил https://gist.github.com/knutov/8c9077790f925f1e336f
>
>
> 27.02.2015 0:29, Maxim Vuets пишет:
>> On 26 February 2015 at 18:29, Nick Knutov <mail на knutov.com> wrote:
>>> Добавил в сравнение https://gist.github.com/knutov/8c9077790f925f1e336f
>> Если интересно мерять разные всякие, тогда стоит добавить также:
>> - slurp_raw из Path::Tiny
>> - IO::All, https://metacpan.org/pod/distribution/IO-All/lib/IO/All.pod
>> - File::Slurp::Tiny, https://metacpan.org/pod/File::Slurp::Tiny
>> - ??? https://github.com/JRaspass/File-Slurp-XS
>>
>> А потом оформить в виде и стиле http://neilb.org/reviews/ (-;
>>
>>> Внезапно, и не могу понять почему, с utf8 Path::Tiny быстрее, хотя с
>>> latin1 наоборот, и в 4 раза медленнее.
>> Дикое поверхностное предположение: latin1 есть кодировка отличная от
>> той, что используется внутри perl-а для хранения данных, и
>> следовательно нужно перекодировать и проверять.

-- 
Best Regards,
Nick Knutov
http://knutov.com
ICQ: 272873706
Voice: +7-904-84-23-130 

----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150404/c95a3a92/attachment.html>


Подробная информация о списке рассылки Moscow-pm