Vincenzo Melandri wrote:
ah, allora non vuoi fare un benchmark, vuoi dimostrare che gentoo
va piu` forte degli altri concorrenti a parita` di hardware... :)
Peccato che non è vero... :-P
Dimostramelo.
L'onere della prova sta a chi fa un'affermazione.
http://www.nizkor.org/features/fallacies/burden-of-proof.html
Sull'argomento ti do' qualche spunto di riflessione (e nessuna
dimostrazione). La parola /dimostrazione/, tra l'altro, la considero un
po' troppo forte da applicare ai benchmark[1]
1) Gli advocates di gentoo giurano sull'evidentissimo e generalizzato
vantaggio in termini di prestazioni. Strano che vantaggi così palesi non
siano mai stati dimostrati con numeri riproducibili.
2) Microsoft qualche anno fa mostrò[2] che su un quadriprocessore con
qualche giga di RAM e 4 schede di rete Win2K e IIS serviva pagine molto
più velocemente di Linux con Apache. Gli zeloti buttarono le braghe in
aria, ma sbagliavano; MS aveva ragione. So what ? Cosa è cambiato nel
mono dell'informatica da allora ?
3) In relazione al punto di prima, si sa che Apache 1.x, con il suo
modello pre-fork, è lento come un bradipo ubriaco. Perché allora tutti
usano apache e non thttpd, boa mathopd che sono mostruosamente più
veloci ? Sono tutti rincoglioniti ?
4) Da almeno un decennio il collo di bottiglia in un sistema è l'accesso
alla memoria al disco. Inoltre in quasi tutti i processi la parte di
codice che usa il 90%[3] del tempo di CPU è il 10% del totale del codice
del processo; e bene e spesso sta tutto nella cache della CPU. Per far
andare più veloce il sistema su cosa operiamo ? Sul sottosistema che
_comunque_ va incredibilmente più veloce degli altri ? E come ci
operiamo ? Cambiando qualche istruzione con un altra hardware-specific
che usa qualche ciclo di clock in meno ?
Facendo un paragone fantasioso è come cavare le copertine dai sedili per
alleggerire l'auto e farla andare più forte. Dal punto di vista teorico
non fa una piega... ma nella vita reale ?
5) Può essere necessario o opportuno, in alcune architetture server,
ricompilarsi a manina, con cura e con amore il daemon che fornirà il
servizio fondamentale, selezionando ad una ad una le opzioni, le patches
e le parti di codice da includere. Questo ha un senso, e si fa da
decenni, su *TUTTI* gli unices (e non solo su gentoo).
6) A parte casi particolari e specifici e' sempre stato considerato
ozioso cercare la performance cercando di limare qualcosa compilando in
modo da usare qualche singola istruzioncella "ottimizzata" per il
singolo sotto-flavour della stessa architettura. Tutti rincoglioniti ?
7) Non necessariamente -O3 va più forte di -O2. E tirare troppo la corda
al compilatore ti espone al rischio di bellissimi heisenbugs. Quanto va
forte un processo in core dump ?
8) Sono fichissimo: ho ricompilato con -O42 -funroll-tua-nonna
-comefosse-antani e ho guadagnato lo 0.2% di velocità. Con un disco SCSI
da 15K RPM però la velocità la quadruplicavo. Forse non sono così
fichissimo...
9) Non è il tuo caso (stai lavorando ad un progetto universitario) ma in
un azienda, coi soldi che ti costa un sistemista che sta una settimana a
pistolare con le ottimizzazioni del compilatore ci compri un server.
Bello grosso.
10) Non me ne vengono più in mente, ma volevo arrivare fino a 10... :-)
Ciao,
- ap
[1] Lies, damn lies, benchmarks.
[2] Più o meno, non ricordo i dettagli esatti
[3] Sparo numeri "a raglio", giusto per dare l'idea
|