# Velocità di compilazione

## Arthens

Mi chiedevo quali caratteristiche hardware influenzino maggiornamente la velocità di compilazione.

A breve dovrei aggiornare il mio pc e se possibile vorrei bilanciare la mia configurazione in modo che sia ottimizzata per la compilazione (questo non significa rinunciare al resto   :Wink:  )

Escludendo i biprocessori o processori dual core (che sicuramente porterebbero l'incremento maggiore ma devo escludere per motivi economici) quali sono gli elementi che pesano maggiormente?

meglio un processore con frequenza maggiore o un procio meno veloce ma con il doppio di cache l2?

la ram influisce? meglio velocità o quantità? (suppongo velocità ma vorrei la conferma)

l'hard disk?

altro?

Grazie   :Very Happy: 

----------

## .:chrome:.

secondo me è preferibiile un'abbondanza di cache L2, e di RAM

se hai abbastanza RAM puoi compilare direttamente lì dentro, evitando il deposito su hard disk dei file temporanei. questo sì che ti fa guadagnare in velocità

----------

## Arthens

Quantifica meglio cosa intendi per abbastanza ram... 1gb è sufficiente? Passare a 2gb rappresenterebbe un incremento sostanziale della velocità o minimo?

Grazie   :Wink: 

----------

## .:chrome:.

 *Arthens wrote:*   

> Quantifica meglio cosa intendi per abbastanza ram... 1gb è sufficiente? Passare a 2gb rappresenterebbe un incremento sostanziale della velocità o minimo?
> 
> Grazie  

 

1 GB è più che sufficiente per lavorare egregiamente... ma se ci vuoi anche compilare dentro, allora non basta. considera che /dev/shm è grande la metà della RAM

----------

## Luca89

 *k.gothmog wrote:*   

> 
> 
> 1 GB è più che sufficiente per lavorare egregiamente... ma se ci vuoi anche compilare dentro, allora non basta. considera che /dev/shm è grande la metà della RAM

 

Si ma non credo che influenzi molto, nei miei sistemi è sempre vuota   :Shocked: 

```
shm                   236M     0  236M   0% /dev/shm
```

Inoltre viene montata con tmpfs il quale se non viene utilizzato non occupa ram.

----------

## Ic3M4n

 *k.gothmog wrote:*   

> ma se ci vuoi anche compilare dentro, allora non basta.

 

esagerato... logicamente dipende da vari fattori, ma se ti puoi permettere un po' di spazio su disco per aumentare lo swap con 512Mb riesci ad avere un netto miglioramento durante la compilazione. logicamente ogni tanto devi swappare.

----------

## .:chrome:.

 *Ic3M4n wrote:*   

>  *k.gothmog wrote:*   ma se ci vuoi anche compilare dentro, allora non basta. 
> 
> esagerato... logicamente dipende da vari fattori, ma se ti puoi permettere un po' di spazio su disco per aumentare lo swap con 512Mb riesci ad avere un netto miglioramento durante la compilazione. logicamente ogni tanto devi swappare.

 

e invece no... se ci vuoi compilare dentro, in certi casi (rari per fortuna) non ci stai... provato sulla mia pelle

----------

## Luca89

 *k.gothmog wrote:*   

> e invece no... se ci vuoi compilare dentro, in certi casi (rari per fortuna) non ci stai... provato sulla mia pelle

 

Io ho 512Mb di ram più circa 1Gb di swap, impostando la dimensione del filesystem in tmpfs a 900Mb riesco a compilare tutto ciò che mi serve. Naturalmente se la ram si riempie uso la swap.

----------

## GiRa

Openoffice è un esempio (esagerato) in cui servirebbero 4GB.

----------

## fejfbo

 *GiRa wrote:*   

> Openoffice è un esempio (esagerato) in cui servirebbero 4GB.

 

Tolti però qualche pacchetto così grande, con gli non dovrebbero esserci problemi.

Forse come esempio hai portato l'ebuild più complesso da compilare

----------

## .:chrome:.

 *GiRa wrote:*   

> Openoffice è un esempio (esagerato) in cui servirebbero 4GB.

 

io 4 li avevo... ma non ce l'ho fatta  :Sad: 

----------

## GiRa

Davvero?!?! Azz ne hai di servizi che girano su quella macchina!  :Wink: 

----------

## Ferdinando

 *Luca89 wrote:*   

> Io ho 512Mb di ram più circa 1Gb di swap, impostando la dimensione del filesystem in tmpfs a 900Mb riesco a compilare tutto ciò che mi serve. Naturalmente se la ram si riempie uso la swap.

 

Sono nella tua stessa situazione; mi ricordi che opzione si usava per aumentare la dimensione di tmpfs? Una volta l'avevo fatto, ma poi ho dimenticato e ora il manuale di mount non mi è d'aiuto   :Rolling Eyes: 

Grazie

Ciao

----------

## Danilo

 *Ferdinando wrote:*   

> 
> 
> Sono nella tua stessa situazione; mi ricordi che opzione si usava per aumentare la dimensione di tmpfs? Una volta l'avevo fatto, ma poi ho dimenticato e ora il manuale di mount non mi è d'aiuto  
> 
> Grazie
> ...

 

in etc/make.conf inserisci

```

PORTAGE_MEMSIZE=500   <-- 500 MB

```

oppure

```

PORTAGE_MEMSIZE=""   <-- Disattivi tmpfs

```

----------

## Ferdinando

 *Danilo wrote:*   

> 
> 
> ```
> 
> PORTAGE_MEMSIZE=500   <-- 500 MB
> ...

 

Grazie! Quella variabile non la conoscevo, ho cercato nel forum e ho scoperto che serviva anche il bashrc di fonderiadigitale; sul mio precedente laptop avevo montato direttamente tmpfs su /var/tmp/portage e avevo modificato la dimensione con un'opzione in /etc/fstab.

Grazie!

Ciao

----------

## Luca89

 *Ferdinando wrote:*   

> Sono nella tua stessa situazione; mi ricordi che opzione si usava per aumentare la dimensione di tmpfs?

 

Io faccio così (in fstab):

```
var_tmp /var/tmp tmpfs size=900M,nodev 0 0
```

----------

## Ferdinando

 *Luca89 wrote:*   

> Io faccio così (in fstab):

 

Ti ringrazio; però ora che ho visto la soluzione alla fonderiadigitale me ne sono innamorato  :Very Happy: 

Con quella tecnica il tmpfs viene creato all'inizio di una sessione di emerge e liberato subito dopo, cancellando anche eventuali tracce di compilazione da un'emerge all'altro, e può essere disabilitato dinamicamente semplicemente cambiando quella variabile sulla riga di comando.

Che dire, grande fonderia!

----------

## Danilo

 *Ferdinando wrote:*   

> 
> 
> Quella variabile non la conoscevo, ho cercato nel forum e ho scoperto che serviva anche il bashrc di fonderiadigitale; 
> 
> 

 

Da come parlavi pensavo che avessi gia' lo script.

Una avvertenza: se la compilzione fallisce/la interrompi lo script NON smonta tmpfs.

Dovrai unmountare a mano...

----------

## Ferdinando

 *Danilo wrote:*   

> Una avvertenza: se la compilzione fallisce/la interrompi lo script NON smonta tmpfs.
> 
> Dovrai unmountare a mano...

 

Capisco... Grazie per l'avvertimento, questo particolare mi era sfuggito  :Neutral: 

Ciao

----------

## !equilibrium

 *Danilo wrote:*   

> Una avvertenza: se la compilzione fallisce/la interrompi lo script NON smonta tmpfs.
> 
> Dovrai unmountare a mano...

 

non vero, viene effettuato lo smontaggio se viene rilevato il device tmpfs già montato  :Wink: 

----------

## Danilo

 *DarkAngel76 wrote:*   

> 
> 
> non vero, viene effettuato lo smontaggio se viene rilevato il device tmpfs già montato 

 

Forse allora ho un vecchio script.

df al secondo lancio mi segnala due tmpfs montate.

----------

## thewally

 *Danilo wrote:*   

>  *DarkAngel76 wrote:*   
> 
> non vero, viene effettuato lo smontaggio se viene rilevato il device tmpfs già montato  
> 
> Forse allora ho un vecchio script.
> ...

 

Confermo, sono due versioni differenti: ho avuto lo stesso problema qualche tempo fa' con la versione vecchia, ma con l'attuale tutto funge. 

Comunque, per essere sicuri dell'esistenza di versioni differenti bisognerebbe chiedere a fonderiadigitale   :Wink: 

----------

## Ferdinando

Comunque:

```
exairetos@Aurora ~ $ genlop -t glibc

 * sys-libs/glibc

     Wed Jul 27 16:23:49 2005 >>> sys-libs/glibc-2.3.5-r1

       merge time: 36 minutes and 59 seconds.

     Fri Jan  6 12:46:55 2006 >>> sys-libs/glibc-2.3.6-r2

       merge time: 40 minutes and 50 seconds.

```

L'ultimo l'ho compilato poco fa; il primo l'ho selezionato tra i più veloci perché essendo su un portatile la velocità di compilazione dipende anche dall'uso della batteria o dell'alimentazione, dalla temperatura della cpu, ecc., e inoltre se faccio o meno qualcosa nel frattempo, ovviamente: probabilmente il primo era in condizioni ottimali, che ho cercato di ripetere.

Certo, le versioni sono differenti e probabilmente a luglio ho scaricato il pacchetto con la fibra ottica, mentre ora sono su un'adsl, ma la differenza sarà di una manciata di minuti.

In ogni caso mi aspettavo uno speedup maggiore, anche se avevo scelto il filesystem xfs proprio per la sua efficienza nel gestire i numerosi piccoli files delle compilazioni.

Ciao

----------

## !equilibrium

 *Ferdinando wrote:*   

> In ogni caso mi aspettavo uno speedup maggiore, anche se avevo scelto il filesystem xfs proprio per la sua efficienza nel gestire i numerosi piccoli files delle compilazioni.

 

quello è reiserFS, non XFS

----------

## Ferdinando

 *DarkAngel76 wrote:*   

> quello è reiserFS, non XFS

 

In generale hai ragione, però come diceva qui un certo Daniel Robbins  :Laughing:  (l'uomo per cui ho più rispetto dopo RMS):

 *DRobbins wrote:*   

> For small to medium-sized files, XFS can be competitive and sometimes even faster than ReiserFS if you create and mount your XFS filesystem with some performance-enhancing options.

 

Grazie a te mi sono ricordato che quando ho ricreato la partizione qualche giorno fa ho dimenticato quelle opzioni  :Crying or Very sad:  DRobbins ne parlava qui.

Probabilmente non vedo grandi miglioramenti perché anche xfs fa un pesante uso del caching in ram, e quindi i miei files finiscono comunque sul disco; comunque non rimetterò mai il reiser, visto che l'anno scorso mi si corruppe senza alcun preavviso e persi tutti i cambiamenti e diversi miei script (allora facevo il backup solo dei documenti e progetti importanti - ora faccio uno stage4 ogni volta).

Ciao

----------

## !equilibrium

 *Ferdinando wrote:*   

> Grazie a te mi sono ricordato che quando ho ricreato la partizione qualche giorno fa ho dimenticato quelle opzioni  DRobbins ne parlava qui

 

alcune delle tip nominate da Robbins sono già attive di default nella versione attuale di XFS per linux, ti rimando alla lettura di questo thread che tratta l'argomento in modo molto + approfondito XFS Tips

----------

## Ferdinando

 *DarkAngel76 wrote:*   

> ti rimando alla lettura di questo thread che tratta l'argomento in modo molto + approfondito XFS Tips

 

Grazie; quell'articolo me l'ero proprio perso   :Surprised: 

Ciao

----------

