[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RiminiLUG-General] Resoconto serata 28/4/2010
Il 30/04/2010 21:53, Daniele Palumbo ha scritto:
[cut]
esempio di ieri per i rischi di gentoo: (ma non ne ho altri, praticamente) la versione 0.96 di clamav ha un bug che se compilato con il flag "-O3" va in segmentation fault.
sono d'accordo solo in parte
ogni upgrade è una variazione importante al sistema informativo ed e'
per questo che prima di un upgrade di una macchina in produzione bisogna
fare dei test in un ambiente controllato.
Un altro aspetto riguarda le ottimizzazioni del compilatore ...ovvero l'
-O3 del quale parlavi.
La stragrande maggioranza delle distribuzioni non usa le ottimizzazioni
dei compilatori e pertanto alcuni problemi non vengono fuori ...aka il
codice rimane intrinsecamente bacato.
Gentoo, tra le varie opzioni, ti permette di cambiare i parametri con i
quali viene compilato il codice ...e vi faccio notare che alcuni
software hanno dei problemi se vengono utilizzate ottimizzazioni pesanti.
Un esempio su tutti è rappresentato da openoffice:
--
# Compile problems with these ...
filter-flags "-funroll-loops"
filter-flags "-fprefetch-loop-arrays"
filter-flags "-fno-default-inline"
filter-flags "-ftracer"
filter-flags "-fforce-addr"
filter-flags "-O[s2-9]"
--
questi sono i filtraggi che vengono fatti quando deve essere compilato
openoffice su gentoo ...ovvero se avete le opzioni citate lui le toglie
e compila il codice senza di esse.
Inoltre bisogna tenere presente che alcune ottimizzazioni sono
dichiaratamente rischiose e non consigliate:
http://www.gentoo.org/doc/en/gcc-optimization.xml
la scritta in neretto dopo la sequela di problemi "Using -O3 is not
recommended for gcc 4.x." deve far riflettere
un vantaggio del scegliere il livello di ottimizzazione a livello di
compilatore è quello di poter creare anche una distro minimale con poco
sforzo:
...se ho poco spazio disco posso compilare tutto con -Os ed avere dei
binari ottimizzati per occuparare poche risorse disco / CPU cache
...notare che anche -Os puo' essere rischio con alcuni software perche'
puo' produrre risultati inattesi
Quando si lavora sui compilatori in generale si puo' migliorare le
performance globali ma si puo' anche incorrere in problemi strani
...pensate che flag come -O3 smontano anche i classi cicli
trasformandoli in qualcosa di sequenziale ...e non e' proprio un
cambiamento banale
buon man gcc a tutti
Christian