2011-01-04 8 views
9

Dopo aver letto an article sulle implicazioni della memoria virtuale sulle prestazioni delle applicazioni (e quindi sulla progettazione), mi rendo ancora una volta conto di quanto poco conosca sull'architettura dei computer di oggi. Ho solo una vaga idea di cosa siano cache, pipeline, algoritmi di predizione dei rami, come funzionano i bus di memoria e probabilmente dozzine di altri artefatti che potrebbero migliorare notevolmente le prestazioni del mio programma se solo ne sapessi.Un buon articolo sulle moderne funzionalità della CPU/ottimizzazioni delle prestazioni?

Per la mia difesa posso dire che sapevo già cosa fosse VM (memoria virtuale) e come funzionasse, anche se mi vergogno di non aver pensato prima alle implicazioni.

Quindi ... qualcuno può consigliare qualche lettura sull'argomento/i? Preferisco di gran lunga articoli online che possono essere letti gratuitamente - ma se conosci un buon libro, non esitare a aggiungere anche quello!

P.S. Mi interesserebbe anche il modo in cui queste lezioni influenzano i moderni ambienti di alto livello come .NET, che è la mia residenza principale.

+0

+1. Scusa, non posso aiutarti, ma grazie per avermi fatto questa domanda, perché ora posso imparare un po 'di più. –

+0

Se non si sta sviluppando il sistema operativo o qualcosa di simile, non si ha a che fare con questi problemi (e anche * non si può *, perché questo è un livello chiuso dell'architettura software). Dall'altro lato, tutti dovrebbero sapere come funzionano diversi processori, VM, paging, 64- vs 32-bit ecc. – ern0

+0

@ ern0 - Ovviamente, il sistema operativo ha un discreto controllo sulla tua app - come se potesse fermarlo in qualsiasi momento, fare casino con la tua VM, ecc. Ma ogni tanto hai un core della CPU tutto per te, quindi ha senso cercare di fare il più possibile mentre puoi ancora. –

risposta

2

Appena trovato this PDF di Ulrich Drepper, intitolato "Cosa ogni programmatore dovrebbe sapere sulla memoria". Non l'ho letto, ma sembra perfetto!

1

Avere uno sguardo a queste guide per Intel e AMD:

  • Intel (R) 64 e IA-32 Architetture ottimizzazione manuale di riferimento (PDF 4.5MB)
  • Guida del software di ottimizzazione per AMD familiari processori 15h (PDF 1,9 MB)

Tuttavia, è più focalizzato su C/C++. Ma molte ottimizzazioni dovrebbero funzionare anche su .NET.

Problemi correlati