Здравтсвуйте. Сегодня я собирал небольшой проектик на куте. Ну и заодно решил провести тестирование скорости сборки.
Итак. Процессор Intel Core 2 Duo T6600 2.20GHz.
Изменяли мы следующее.
1) Ставили/Убирали /tmp как tmpfs
2) Ставили/Убирали -pipe
3) Меняли -jN
4) Говорили qt чтобы все промежуточные файлы она сохраняла в /tmp
В итоге ничего не изменялось О_о. И при всех комбинациях ситуация была следующая.
make : 1m 05s
make -j2 : 45s
make -j3 : 45s
make -j4 : 45s
make -j8 : 45s
Т.е. для двухядерного проца установка -j2 делает процесс компиляции на 25% быстее. Дальнейшее увеличение числа запущенных процессов на двухядернеке к ускорению компиляции не приводит. Изменение параметров (-pipe, /tmp -> tmpfs, вынос всех промежуточных файлов на /tmp) тоже не привел к увеличению производительности и вообще на скорость никак не влияет.
Заодно я включал iostat и смотрел сколько у меня пишется на диск и смотрел производительность. Так вот -noatime, tmpfs никак не влияют на производительность вообще никаких команд. Все работает по прежнему.
Только вот идет еще запись на диск.
Программка на куте. У нее есть
precompiled header - 37МB
qrc_*.cpp - 4.6МB
*.оbj, moc_*.cpp, ui_*.h - (забыл)MB
Собраный бинарник - (тоже забыл)MB
Так вот это все каждый раз после ребилда писало на диск 53Метра. Что много и изнашивает жесткий диск (важно если SSD). Чтобы этого не было надо сказать куте чтобы она все записывала в /tmp, а /tmp сделать как tmpfs. После этого запись на жесткий диск прекратилась, но скорость компиляции все равно не увеличилась.
Если включить atime и посмотреть сколько записывается на диск, то можно увидить следующее.
find / -name «*d*» - 40MB
ctags - 50MB
Вообщем запивыется данных много, которые никому не нужны. А потом я провел последний опыт - скопировал папку с проектом на /tmp. И компилил там. И получил следующее.
make : 48s
make -j2 : 36s
make -j3 : 36s
make -j4 : 36s
make -j8 : 36s
Т.е. мне удалось сделать процесс компиляции быстрее только вынеся проект на /tmp. Почему так происходит? А вы проводили какие-нибудь тесты? Вообщем, давайте подумаем что происходит. Почему такие странные результаты?
Ответ на:
комментарий
от Igron
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.