Portál AbcLinuxu, 30. dubna 2025 09:07
Otestoval jsem svoji staronovou hračku. Kompiloval jsem monolytický kernel vanilla-2.6.16.2 s různými volbami -jX programu make, kde X je počet současně běžících procesů. Zajímalo mě, jak tato volba ovlivní dobu trvání kompilace na dual CPU mašině.
Pro otestování jsem napsal primitivní skript:
#!/bin/bash cd /usr/src/linux-2.6.16.2 numbers="1 2 3 4 5 6" for number in $numbers; do make clean > /dev/null echo "make -j$number" time make -j$number > /dev/null done exit 0
Tady jsou výsledky:
make -j1 real 47m32.628s user 44m18.978s sys 3m34.845s make -j2 real 47m2.569s user 43m51.576s sys 3m32.745s make -j3 real 47m34.519s user 44m18.226s sys 3m36.610s make -j4 real 25m14.465s user 44m48.260s sys 3m39.710s make -j5 real 24m41.261s user 44m56.633s sys 3m39.286s make -j6 real 24m40.760s user 45m3.017s sys 3m38.666s
Nárůst výkonu je nejvýraznější pro -j4, a to o 88%. Může mi někdo vysvětlit, proč se tedy doporučuje pravidlo "počet_procesorů+1"? Sem se IMHO více hodí pravidlo "+2" nebo "x2".
Tiskni
Sdílej:
for N in {1..6}; do make clean > /dev/null echo "make -j$N" time make -j$N > /dev/null || echo Failed done
make -j1 real 3m38.282s user 3m14.194s sys 0m20.321s make -j2 real 3m34.612s user 3m14.164s sys 0m20.359s make -j3 real 3m34.647s user 3m14.276s sys 0m20.224s make -j4 real 3m34.463s user 3m14.386s sys 0m20.003s make -j5 real 3m34.398s user 3m14.058s sys 0m20.280s make -j6 real 3m34.458s user 3m14.214s sys 0m20.079s
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
make -j1 real 5m11.228s user 4m28.177s sys 0m29.662s make -j2 real 5m6.803s user 4m29.181s sys 0m29.166s make -j3 real 5m6.027s user 4m29.525s sys 0m28.850s make -j4 real 5m6.636s user 4m29.157s sys 0m29.338s make -j5 real 5m6.910s user 4m29.673s sys 0m28.754s make -j6 real 4m59.729s user 4m27.581s sys 0m28.742s
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.