Nell'applicazione che sto sviluppando, viene utilizzato il controllo DevExpress XtraGrid, che ha un evento RowCellStyle
che consente di personalizzare lo stile di ogni cella. I gestori di eventi per questo evento tipicamente assomigliano che:Costo della creazione di oggetti Font in .NET
private gridView1_RowCellStyle(object sender, RowCellStyleEventArgs e)
{
if (/* Some condition */)
{
e.Appearance.Font = new Font(gridView1.Appearance.Font, FontStyle.Bold);
}
}
Questo gestore viene richiamato ogni volta che viene eseguito il rendering di una cella, quindi è in grado di creare un gran numero di casi Font
. Quindi mi chiedo quale sia il costo per farlo ... Ho fatto alcuni esperimenti e sembra che ogni volta venga creata una nuova maniglia HFONT. Dovrei preoccuparmi? Quanto è grande l'impatto sull'utilizzo delle risorse?
Se ha un impatto significativo sulle prestazioni, non dovrebbe esserci una classe FontCache
o qualcosa di simile?
Nota: io so come risolvere il problema (ho solo bisogno di creare il tipo di carattere, una volta e riutilizzarlo ogni volta), la mia domanda è in realtà circa il costo della creazione di molti HFONT maniglie
Ho accidentalmente avuto un codice simile in un ciclo di rendering del gioco una volta. Penso che sia caduto FPS da> 200 a meno di 40. – Jimmy
L'ottimizzazione prematura è la radice di tutto il male -____-. –
Il licenziamento prematuro delle preoccupazioni relative alle prestazioni è un male meno celebrato. – Jimmy