# Velocizzare il codice

**URL:** <https://forum.olinfo.it/t/velocizzare-il-codice/4810>\
**Category:** Uncategorized\
**Created:** [1 Ottobre 2017, 3:26pm UTC](https://forum.olinfo.it/t/velocizzare-il-codice/4810 "2017-10-01T15:26:28Z")\
**Posts on this page:** 1\
**Showing post:** 14

<div class="post-metadata">

**Author:** ![erolm\_a](https://forum.olinfo.it/user_avatar/forum.olinfo.it/erolm_a/32/514_2.png) [@erolm\_a](https://forum.olinfo.it/u/erolm_a)\
**Post date:** [2 Ottobre 2017, 1:16pm UTC](https://forum.olinfo.it/t/velocizzare-il-codice/4810/14 "2017-10-02T13:16:40Z")

</div>

Entrando nel dettaglio.  
Come ti dicevo in sede privata @rossimelthomas dovresti puntare sul vedere bottomup dovunque.  
Se stai facendo problemi a query, la lettura a blocco delle query e la scrittura in blocco dei risultati rende il tutto un filino più veloce (l’ottimizzazione funziona meglio se i programmi sono [CPU-bound](https://en.wikipedia.org/wiki/CPU-bound) quindi evita di “stoppare” l’algoritmo sul più bello stampando o leggendo roba).

Se vuoi fai anche una sana lettura sul funzionamento intrinseco di [CPU cache](https://it.wikipedia.org/wiki/CPU_cache) e di [località spaziale e temporale](https://en.wikipedia.org/wiki/Locality_of_reference).

Se poi approfondissimo ci sarebbe anche la faccenda dell’allineamento, o il branch prediction, ma esuliamo dall’aspetto competitive.

Un ultima cosa va detta:

**O(logN) non è necessariamente meglio di O(N)**! Conosco gente che costruisce delle map per convertire poche chiavi in pochi valori anziché fare switch/case. Fidatevi, ce ne vuole prima che la differenza conti qualcosa.

---

_[View the full topic](https://forum.olinfo.it/t/velocizzare-il-codice/4810)._
