/ / Che cos'è un hotspot critico per le prestazioni e il suo scopo? - c #, prestazioni, puntatori

Che cos'è un hotspot critico per le prestazioni e il suo scopo? - c #, prestazioni, puntatori

Sto leggendo C # 5.0 in breve (O "Reilly) e nel primo capitolo c'è una sezione che parla della gestione della memoria. Questa sezione spiega l'uso non necessario di puntatori in C #, perché elimina il problema di puntatori errati trovati in altre lingue come C ++. Infine menziona l'uso critico dei puntatori negli hotspot critici per le prestazioni.

Quindi, cos'è un hotspot critico per le prestazioni e il suo scopo?

Grazie in anticipo per il vostro aiuto.

risposte:

5 per risposta № 1

Un "hotspot critico per le prestazioni" si riferisce a un pezzo di codice che rappresenta un collo di bottiglia nelle prestazioni. Questo potrebbe essere molte cose, ma un buon esempio di ciò è l'elaborazione delle immagini.

Diciamo che ho una bitmap piuttosto grande e ho bisognoper eseguire alcune operazioni su ciascun pixel. Questo sarà un ciclo con molte iterazioni e forse molto in corso. Risparmiare un po 'di tempo CPU e / o IO durante ciascuna iterazione di questo loop (questo "hotspot") comporterà un notevole aumento delle prestazioni complessive.

Così, GetPixel e SetPixel sono fuori dalla finestra. Sono lenti e, per esperienza, so che non funzioneranno bene su immagini di grandi dimensioni. In questo caso posso usare LockBits per bloccare l'immagine nella posizione di memoria corrente e ottenere un puntatore ai bit dell'immagine grezza.

Questo tipo di attraversamento si tradurrà in lontano codice più veloce e ora ho ottimizzato un "hotspot critico per le prestazioni"