dadv: (chuck)
Choose your future ([personal profile] dadv) wrote2011-06-14 01:48 am

buildworld

Повторил старый тест на сегодняшней FreeBSD 8.2-STABLE/UFS.

На двухъядерной домашней системе создал /dev/md0 в 2G размером, смонтировал (async) в /mnt/tmp, скопировал туда /usr/src, создал там же obj и tmp и запустил:

# cd /mnt/tmp/src; time env TMPDIR=/mnt/tmp/tmp MAKEOBJDIRPREFIX=/mnt/tmp/obj make -j3 MODULES_WITH_WORLD=yes buildworld
...
real 61m8.607s
user 99m57.180s
sys 11m30.844s

Эффективность распараллеливания на два ядра более 91%.
Затем то же самое сделал без md:

real    62m21.302s
user    100m22.833s
sys     12m6.297s

Разница — 1 минута и 12.7 секунды. Как и на 7.0, морочиться с созданием RAM-диска нет смысла, FreeBSD достаточно хорошо кеширует UFS.

[identity profile] dadv.livejournal.com 2011-06-14 07:41 am (UTC)(link)
По определению, ускорение работы на N процессорах по отношению к одному равно отношению времени работы на одном процессоре ко времени на N процессорах.

Опять же по определению, эффективность есть ускорение, поделенное на N.

На одном я не проверял и поэтому вместо времени работы на одном процессоре взял
сумму user+sys, в первом прогоне это 99m57.180s + 11m30.844s = 111m28.024s, поделив это время на real 61m8.607s, получил "ускорение" в 1.82 раза, а поделив его на N=2, получил "эффективность" 0.91152 или чуть больше 91%.