Op zaterdag 13 juli 2002 01:36 schreef Bl4cKH4T het volgende:
Zou ik mijn Debian Sid dumpen en Gentoo installen?
Zou ik niet doen, maar dat is uiteraard persoonlijk. Dat is distro-keuze op heel veel fronten.
Uiteraard kom je er pas met zekerheid achter welke distro
jij het beste kunt gebruiken als je alle distro's uitgebreid hebt geprobeerd.
Een van de dingen die aan Gentoo altijd heel erg wordt gepromote is het feit dat alles voor je systeem gecompiled is, en dus sneller draait (vanwege sterkere optimalisatie).
Om te beginnen is de snelheidswinst die je haalt met het compilen met -march en -mcpu voor het grootste deel van de programma's heel beperkt. Een paar dingen die een rol spelen bij het al dan niet 'snel zijn' van geproduceerde code zijn het anticiperen op wat voor CPU het is (volgorde instructies ivm pipelines bijvoorbeeld), en het gebruiken van instructies specifiek voor hogere CPUs.
Het eerste doet gcc al zoveel mogelijk, ook al compile je voor 80386. Bij bijvoorbeeld een 486 maakt het geen ruk uit in welke volgorde je hem de instructies voert (slechts één pipeline en afaik geen branch prediction), dus kan het optimaliseren van de volgorde geen kwaad voor die CPU.
Het tweede is een groot discussiepunt. In theorie zou je met bijvoorbeeld MMX en SSE in een aantal applicaties een redelijke snelheidswinst kunnen halen (en veel andere applicaties absoluut niet btw). Maar gcc 2.* produceert ronduit bagger-code als het op MMX en SSE aankomt. Met gcc 2.* heb je dus alleen iets aan MMX en SSE als je
zelf bij het maken van het programma MMX en SSE instructies specificeerd (mplayer doet dit bijvoorbeeld). gcc 3.* zou beter zijn wat dit betreft, maar daar kom ik zo op terug.
Dan heb je nog optimalisatie met behulp van -O. Deze flag instrueert gcc om te proberen haar code beter te optimaliseren. Tot -O2 is geaccepteerd als 'veilig', daarboven (dus -O3 en hoger) is het niet meer gegarandeerd dat de uitgespuugde code correct is.
Maar veel software gebruikt al -O2 als het gecompiled wordt. Daar hoef je dus je software niet zelf voor te compilen.
Bovendien is het zelf-compilen absoluut niet exclusief voor Gentoo (al is Gentoo er wel volledig op gericht, itt de meeste andere distro's).
Source kun je in principe op elke distro compilen. In het geval van Debian packages is het op Debian meestal nog erg makkelijk ook: apt-get build-dep
package om de benodigde -dev libs enzo voor het package te installen en apt-get -b source
package om de source van het package te downloaden en compilen.
Ook schijnen sommige mensen het feit dat je in Gentoo met gcc 3.1 kunt compilen nogal uitzonderlijk te vinden... gcc 3.1 is net zo goed niet Gentoo-specifiek (Debian Unstable heeft bijvoorbeeld gcc 3.1.1-0pre3).
Maar ik vind gcc3.1 eigenlijk nog niet geschikt voor 'gewoon' gebruik, aangezien je dingen als kernel en XFree86 nog beter niet aan gcc 3.1 kunt toevertrouwen.
gcc 3.* zou overigens betere code uitspugen dan 2.*, maar zodra gcc 3.* volwassen genoeg is hercompilen alle distro's hun software met gcc 3.*.
Om nog even door te zeuren over die optimalisaties: ik heb eens X, Mozilla, Galeon, Enlightenment en een verzameling libraries gehercompiled met -march en -mcpu voor mijn computer, en nog -O2 en -funrollloops e.d. geforceerd (voorzover de Makefiles dat zelf al niet deden), zodat in ieder geval Galeon en al Galeons directe depends en de belangrijkste indirecte depends allemaal gehercompiled waren.
Ik heb daar een tijdje mee gewerkt, en ik kan niet zeggen dat ik enige snelheidswinst merkte.
Zo'n test is natuurlijk subjectief, maar als ik er niks van merk, wat heb ik er dan aan?
Ik vind de tijd die het kost om software te compilen trouwens te lang voor gewoon gebruik als ik zie dat het compilen in Gentoo uren me uren kost, en het updaten 78 Debian packages 10 minuten duurt. Dit btw op mijn snelste computer: een celeron-500.
Wat ik btw erg sterk vind van Debian is haar generiekheid: Debian is in haar geheel geport naar heel veel platforms (tis zo'n beetje de enige distro die draait op mijn HP bak met parisc CPU zelfs), en ze zijn zelfs bezig om het te porten naar andere kernels (oa de HURD, NetBSD, OpenBSD en FreeBSD kernels).
Ook de scheiding in meerdere tree's (Stable, Testing en Unstable) vind ik erg praktisch...
Op zaterdag 13 juli 2002 01:57 schreef intoxicated het volgende:
Besides, onder Gentoo kun je RPM's gebruiken.
Onder Debian ook. Kheb het alleen pas één keer gedaan, omdat het echt zelden nodig is.