Mi sono imbattuto in un problema di performance dovuto alla "pesantezza" degli oggetti caricati dal fido Nhibernate e passati come datasource ad una GridView.

Una ricerca senza filtri produceva circa 400.000 risultati, contanto gli oggetti da popolare e tutte le varie proprietà mappate bhé, il risultato per la memoria del sistema non era dei migliori. Penso ad un metodo "agile" per visualizzare i dati e penso al lazy loading di NH.

Detto fatto, Mi faccio restituire da NH solamente la collection di chiavi primarie delle entità da visualizzare e sulla OnRowCreated della gridview mi occupo di recuperare i dati delle entity da visualizzare sulla gridview.

I risultati sono eccellenti, query veloce (recupera solo la chiave primaria) e visualizzazione ancora più veloce (sebbene ci sia da mettere in conto qualche roundtrip in più per andare a recuperare i dati in visualizzazione).

Sono sempre più contento dei risultati ottenuti lavorando a questo progetto.

Technorati Tags: , ,