[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: opzioni per l'ottimizzazione...



On Wed, Sep 22, 2004 at 04:13:48PM +0200, Legolas wrote:
[...]
> ebbene, gli eclantanti risultati sono stati questi:
> bzip2 pulito: 68minuti e 56 secondi
> bzip2 compilato: 68minuti e 45 secondi
> bzip2 compilato e ottimizzato: 68minuti e 34 secondi...

la sostanza e' che l'unico punto in cui la ricompilazione porta
vantaggi e' sui programmi i cui processi siano cpu bound.
E nemmeno su tutti.

Esempio (spannometrico):
ho un programma che fa 10.000 operazioni in virgola mobile e poi esce e
compilato senza ottimizzazioni per la particolare architettura che ho a
disposizione esegue un'operazione ad ogni ciclo di cpu. Ma! c'e' un ma:
l'architettura HW che ho a disposizione implementa un'istruzione che
permette di eseguire 3 operazioni in virgola mobile per ogni ciclo di
clock. Questo mi permette di eseguire le 10.000 operazioni in un terzo
del tempo.
Inoltre il compilatore che usi deve essere in grado di generare suddette
istruzioni *speciali*.

Oggi purtroppo il collo di bottiglia non sono le CPU ma le memorie,
soprattutto quelle persistenti, motivo per cui probabilmente il tuo
bzip2 perde gran parte del tempo in attesa dei dati.

Puoi fare diverse prove pero' per apprezzare i risultati:
dd if=/dev/zero count=100000  | bzip2 > /dev/null
e vedere le differenze tra l'ottimizzato e il non ottimizzato.
In questo modo il processo non rimane in attesa dei dispositivi lenti.
Il problema di tutto questo e' che *nell'uso reale* non ha senso :)

hth
-- 
mattia
:wq!



Reply to: