Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 25 Май, 2012, 05:35:45

Страниц: [1]
Печать
Автор Тема: Тестирование файловой системы и include/require  (Прочитано 268 раз)
0 Пользователей и 1 Гость смотрят эту тему.
XCoder    ↓ 
29 Октябрь, 2011, 08:46:18
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 1
Сила слова: 0

Конфигурация оборудования (Notebook Asus A7C):
 
cpu: Intel Core Duo T2350 @ 1866.7 Mhz
ram: DDR2 2048 Mb, DRAM Frequency 266 Mhz, Dual Channel
hdd: Hitachi HTS541612J9SA00 (120 Gb, 5400 rpm, SATA), [ sector 512 byte ]
 
os: Win7 Ultimate
fs: NTFS (cluster 4Kb)
 
---
 
Суть тестирования:
 
Cоздаем кучу папок, в них кучу файлов с кодом <?php echo 'File-N'; /* ##...## */ ?>, где вместо N - порядковый номер файла, а вместо ... - комментарий заполняющий файл до нужного размера;
 
Важно: HDD и ОС при работе с файловой системой имеют свои абстрактные уровни кэширования.
Так в частности HDD кэширует куски данных у себя в локальном кэше, доступном лишь контроллеру HDD (в моем случае это 7 Мб), что прозрачно для тестирования уменьшает латентность доступа к данным, а ОС использует механизмы кэширования, задействуя RAM, следовательно, первый прогон более длителен, чем остальные (которые в 3-5 раз быстрее).
 
Таким образом, для объективности тестирования (для невозможности кэширования), каждый новый тестовый прогон, полностью удаляет все существующие файлы и директории и создает их заново, исключая возможность попадания секторов с данными в кэши. Что в тестах выражается стабильным временем отработки эквивалентным первоначальному запуску.

 
Исходный размер файла 51 байт (файл, в котором отсутствует довесок в виде коммента ##...##);
 
Далее буду описывать конфигурацию (кол-во директорий, кол-во файлов в них, размер файла);
 
---
 
Общее для группы измерений: Dir: 10; Files: 100; CPU Freq: 1866,7 Mhz (Bus: 133 Mhz)
Итого: 1000 файлов
 
filesize (Kb)avg.time (sec)
0,050,52
10,54
40,55
80,59
320,78

Время include и require в данном случае идентично, оно и понятно почему.
 
---
 
Общее для группы измерений: Dir: 10; Files: 100; CPU Freq: 2309,5 Mhz (Overclocked: Bus: 165 Mhz)
Итого: 1000 файлов
 
filesize (Kb)avg.time (sec)
0,050,41
10,42
40,44
80,466
320,62

---
 
Промежуточный вывод: в зависимости от увеличения объема данных увеличивается время их чтения при постоянной линейной скорости (в рамках цилиндра на HDD), т.к. запись файлов и создание директорий производятся практически линейно на физическом уровне хранения данных на HDD.
 
Картина была бы другой при произвольном расположении файлов, так как изменение их физического расположения потребовало бы серьезной поправки по времени на произвольный доступ к данным (что проверю чуть позже).
 
Также при росте частоты увеличивается производительность системных операций, обслуживающих I/O, поэтому в определенной пропорции росту частоты уменьшается время выполнения теста (точнее уменьшение времени связано с ускорением части процессорозависимых системных вызовов).

 
---
 
Тест с произвольным размером файлов: от 512 байт до 32 Кб
 
CPU Freq: 1866,7 Mhz
 
avg.filesize (Kb)time (sec)
15,970,663
16,060,949
16,290,646
16,250,734
16,290,654

---
 
CPU Freq: 2309,5 Mhz
 
avg.filesize (Kb)time (sec)
15,830,516
16,250,848
16,160,539
15,990,522
16,200,800

---
 
А теперь сгенерируем файлы случайного размера, затем сольем их в один единственный исполнительный файл:
 
CPU Freq: 1866,7 Mhz
 
avg.filesize (Kb)time (sec)include once file (sec)all/once
16,570,7350,2253,26
15,890,6450,1923,36
16,660,6540,2262,89

---
 
CPU Freq: 2309,5 Mhz
 
avg.filesize (Kb)time (sec)include once file (sec)all/once
16,410,5210,1822,86
15,940,5260,1563,37
16,090,5280,1553,40

---
 

 
Всем приятного просмотра.
Я, пожалуй, пойду тестировать Sandy Bridge (Core-i5 2300 @ 3.7 Ghz) и зависимость латентности от более современных HDD с NCQ и т.д. (500, 750, 1500 Gb / 5400rpm / 7200rpm).
Спустя 4 минуты 29 секунд добавил
А, да, забыл:
PHP Version 5.3.3 - MSVC6 (Visual C++ 6.0)
Записан
Frozzeg    ↓ 
30 Октябрь, 2011, 09:31:34 , спустя 12 часов 45 минут 16 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5501
Сила слова: 1.67

четко, заебись
Записан
phpdude    ↓ 
30 Октябрь, 2011, 11:54:31 , спустя 2 часа 22 минуты 57 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20790
Сила слова: 1.66

пацаны вообще ребята
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
PandoraBox2007    ↓ 
17 Декабрь, 2011, 06:27:07 , спустя 47 дней 18 часов 32 минуты 36 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 21
Сила слова: 0

Винда сама по себе поднимает латентность багами :P
Записан

Страниц: [1]
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd