Я создал большой бинарный файл (134Мб) и решил найти закономерность -
скорость чтения в зависимости от размера разовой порции.
Читающий скрипт
#!/usr/local/LAST/bin/perl
use strict;
use Time::Stopwatch;
my $size = @ARGV[0];
open FD,"<","1.bin" or die "Couldn't open file";
my $buf="";
my $buff="";
tie my $timer, 'Time::Stopwatch';
while (sysread(FD,$buff,$size))
{
$buf .=$buff;
$buff = "";
}
print "Len = " . length($buf) . " time = $timer \n";
Тестирующая обёртка
#!/usr/local/LAST/bin/perl
for (my $i=1000;$i<10000;$i+=1000)
{
`echo "*********** $i ****************" >> log`;
`./BinRead.pl $i >> log`;
`./BinRead.pl $i >> log`;
`./BinRead.pl $i >> log`;
}
А вот и результаты
*********** 1000 ****************
Len = 134184960 time = 1.44458103179932
Len = 134184960 time = 5.34793496131897
Len = 134184960 time = 12.9632449150085
*********** 2000 ****************
Len = 134184960 time = 12.9896860122681
Len = 134184960 time = 8.19250202178955
Len = 134184960 time = 2.76202511787415
*********** 3000 ****************
Len = 134184960 time = 6.86614799499512
Len = 134184960 time = 5.87107181549072
Len = 134184960 time = 24.3561189174652
*********** 4000 ****************
Len = 134184960 time = 10.9215641021729
Len = 134184960 time = 2.31534290313721
Len = 134184960 time = 7.81663918495178
*********** 5000 ****************
Len = 134184960 time = 2.64392805099487
Len = 134184960 time = 3.43289399147034
Len = 134184960 time = 6.88873481750488
*********** 6000 ****************
Len = 134184960 time = 4.62800908088684
Len = 134184960 time = 11.0599589347839
Len = 134184960 time = 6.89057993888855
*********** 7000 ****************
Len = 134184960 time = 7.4300639629364
Len = 134184960 time = 10.491378068924
Len = 134184960 time = 9.54563808441162
*********** 8000 ****************
Len = 134184960 time = 7.39949584007263
Len = 134184960 time = 7.56769704818726
Len = 134184960 time = 6.46512794494629
*********** 9000 ****************
Len = 134184960 time = 8.31921887397766
Len = 134184960 time = 10.0672011375427
Len = 134184960 time = 8.81646490097046
По ним то и вопросы
1) Почему в рамках одной порции настолько разные результаты
2) Какова в теории зависимость скорости от размера порции
P.S.
Может я провёл эксперимент неправильно?
Ответ на:
комментарий
от cvv

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум RHvoice (2013)
- Форум Сборник легкочитаемого перл кода: (2008)
- Форум Переключение на резервный канал? (2011)
- Форум Помогите со скриптом PL (2006)
- Форум При сохранении изменённого файла по сети: Неожиданная ошибка: Not a directory (2009)
- Форум sendmail + saslauth2 (2007)
- Форум Perl: проблема повторного использования файлового дескриптора. (2005)
- Форум sddm и awesome (2015)
- Форум WinBind+Error (2003)
- Форум Вопрос по дешифровке RC4. (2007)