Andrea Paolini ha scritto:
Sull'argomento ti do' qualche spunto di riflessione (e nessuna
dimostrazione).
Aggiungo qualche spunto anche io, visto che è domenica.
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 ?
Sia Linux che Apache hanno preso provvedimenti per rettificare le cose,
come mi pare sia già stato segnalato: trovo la cosa positiva.
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 ?
L'osservazione è del tutto valida in generale, ma le operazioni di
codifica e decodifica chiavi sono una delle poche circostanze in cui
le ottimizzazioni del compilatore possono fare una certa differenza
(anche se nel caso di OpenVPN mi aspetto che il collo di bottiglia sia
la rete).
D'altro canto faccio osservare che di recente, sia pure in Fortran,
Calboli ci ha mostrato come la scelta del compilatore sia stata
*critica* e aggiungo che gcc ha tanti meriti, ma non ha affatto la palma
del compilatore che produce il codice eseguibile più ottimizzato. Una
distribuzione come gentoo, che va a "scuotere l'alberino delle noci"
come si dice a Bologna, in realtà offre un servizio importante: mette in
luce un problema. Se ho un programma il cui binario distribuito da
Debian funziona ma che compilato sotto gentoo con ottimizzazione spinta
va in core dump, chi lo ha compilato sotto gentoo non ha il programma
che magari gli serviva ma tutti gli altri sanno che o c'è un difetto nel
sorgente del programma o c'è un difetto nel compilatore, e hanno un test
case per approfondire le circostanze del problema e *correggerlo*.
La mia personale posizione, quindi, è che chi fa uso di Gentoo svolge un
servizio importante per tutti, così come chi usa Debian o Fedora o Suse
e quando incontra un problema si prende il tempo di investigarlo entro i
limiti delle proprie capacità e disponibilità per poi segnalarlo e
facilitarne la risoluzione svolge un servizio diverso, diciamo più a
valle, ma altrettanto importante.
Ne segue, a mio modesto parere, che l'uso di Gentoo andrebbe
incoraggiato e non stigmatizzato, a patto che siano chiari a priori i
pro e i contro di tale scelta. Ad esempio, di primo acchito, verrebbe da
dire Debian sui server e Gentoo sulla propria postazione. Faccio notare
che, per varie circostanze, non uso Gentoo (in passato ci ho fatto un
giro, poi l'hardware mi serviva per una cosa diversa).
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.
Questo, se vogliamo, è l'esatto opposto di quanto ho esposto sopra: in
azienda è sacrosanto, ma al di fuori una scelta del genere non mi pare
avvantaggi chi la compie aumentandone le competenze e non mi pare
constribuisca a migliorare il software libero.
Davide Bolcioni
--
Paranoia is a survival asset.
|