ObjectPool è una nuova funzionalità di Microsoft, Microsoft ci aiuta a mantenere alcuni oggetti che possono essere riutilizzati.
Per dirla semplicemente, simile alle biciclette condivise, quando la usi, scansiona il codice per sbloccarla, il veicolo significa che è occupato, quando lo usi, quando chiudi l'auto, il veicolo rilascia l'occupazione. Queste occupazioni e scariche sono tutte gestite dalla piattaforma per noi.
Alcuni oggetti non sono thread-safe, ma ogni volta che istanziamo l'oggetto, dobbiamo consumare alcune risorse.
Per prima cosa, creiamo una nuova classe SqlConnectionPooledObjectPolicy che eredita l'interfaccia IPooledObjectPolicy <T>e deve implementarne i due metodi.
Come istanziare l'oggetto nel metodo Crea,Return indica se l'oggetto può ancora essere riutilizzato e, quando viene restituito falso, l'oggetto verrà eliminato dal pool di oggetti.
Il codice sorgente del test è il seguente:
I risultati dei test sono i seguenti:
Si può vedere che il pool di connessioni è un po' più lento nelle prime 10 query e, dopo di ciò, è più veloce di ogni istanza di SqlConnection.
Allegato è il codice sorgente
Turisti, se volete vedere il contenuto nascosto di questo post, vi prego Risposta
|