En la aplicación que estoy desarrollando, usamos el control DevExpress XtraGrid, que tiene un evento RowCellStyle
que permite personalizar el estilo de cada celda. Los controladores de eventos para este evento por lo general se ven como que:Costo de creación de objetos de fuente en .NET
private gridView1_RowCellStyle(object sender, RowCellStyleEventArgs e)
{
if (/* Some condition */)
{
e.Appearance.Font = new Font(gridView1.Appearance.Font, FontStyle.Bold);
}
}
Este controlador se llama cada vez que una célula se vuelve, por lo que puede crear un gran número de casos Font
. Así que me pregunto sobre el costo de hacer eso ... Hice algunos experimentos, y parece que se crea un nuevo identificador HFONT cada vez. ¿Debería preocuparme por eso? ¿Qué tan grande es el impacto en el uso de los recursos?
Si tiene un impacto significativo en el rendimiento, ¿no debería haber una clase FontCache
o algo similar?
Nota: Sé cómo resolver el problema (sólo hay que crear la fuente de una vez y volver a utilizar cada vez), mi pregunta es realmente sobre el coste de la creación de muchas HFONT maneja
Accidentalmente, tuve un código como ese en un juego render-loop una vez. Creo que bajó el FPS de> 200 a menos de 40. – Jimmy
La optimización prematura es la raíz de todo el mal -____-. –
El despido prematuro de las preocupaciones sobre el rendimiento es un mal menos celebrado. – Jimmy