ObjectPool é um recurso novo da Microsoft, a Microsoft nos ajuda a manter alguns objetos que podem ser reutilizados.
Simplificando, assim como bicicletas compartilhadas, quando você usa, escaneia o código para desbloquear, o veículo significa que está ocupado, quando você o usa, quando tranca o carro, o veículo libera a ocupação. Essas ocupações e liberações são todas mantidas pela plataforma para nós.
Alguns objetos não são seguros para threads, mas cada vez que instanciamos o objeto, precisamos consumir alguns recursos.
Primeiro, criamos uma nova classe SqlConnectionPooledObjectPolicy que herda a interface IPooledObjectPolicy <T>e precisa implementar seus dois métodos.
Como instanciar o objeto no método Crear,Return indica se o objeto ainda pode ser reutilizado e, quando o false for retornado, o objeto será excluído do pool de objetos.
O código-fonte do teste é o seguinte:
Os resultados dos testes são os seguintes:
Pode-se ver que o pool de conexões fica um pouco mais lento nas primeiras 10 consultas e, depois disso, é mais rápido do que cada instância do SqlConnection.
Anexado está o código-fonte
Turistas, se quiserem ver o conteúdo oculto deste post, por favor Resposta
|