Trong ứng dụng tôi đang phát triển, chúng tôi sử dụng điều khiển DevExpress XtraGrid, có sự kiện RowCellStyle
cho phép tùy chỉnh kiểu của mỗi ô. Xử lý sự kiện cho sự kiện này thường trông giống như rằng:Chi phí tạo đối tượng Phông chữ trong .NET
private gridView1_RowCellStyle(object sender, RowCellStyleEventArgs e)
{
if (/* Some condition */)
{
e.Appearance.Font = new Font(gridView1.Appearance.Font, FontStyle.Bold);
}
}
xử lý này được gọi mỗi khi một tế bào được trả lại, vì vậy nó có thể tạo ra một số lượng lớn các Font
trường. Vì vậy, tôi tự hỏi về chi phí làm điều đó ... Tôi đã làm một vài thí nghiệm, và có vẻ như là một xử lý HFONT mới được tạo ra mỗi lần. Tôi có nên lo lắng về nó? Tác động của việc sử dụng tài nguyên đến mức nào?
Nếu nó có tác động hiệu suất đáng kể, không nên có lớp học FontCache
hoặc tương tự?
Lưu ý: Tôi biết làm thế nào để giải quyết vấn đề (tôi chỉ cần tạo phông chữ một lần và tái sử dụng nó mỗi thời gian), câu hỏi của tôi thực sự là về chi phí của việc tạo ra nhiều HFONT xử lý
Tôi vô tình có mã như vậy trong vòng lặp kết xuất trò chơi một lần. Tôi nghĩ rằng nó đã giảm FPS từ> 200 xuống dưới 40. – Jimmy
Tối ưu hóa sớm là gốc rễ của mọi điều ác -____-. –
Việc sa thải sớm các mối quan tâm về hiệu suất là một điều xấu xa ít nổi tiếng hơn. – Jimmy