ObjectPool to nowa funkcja Microsoftu, Microsoft pomaga nam utrzymywać niektóre obiekty, które można ponownie wykorzystać.
Mówiąc prosto, podobnie jak w przypadku wspólnych rowerów, gdy go używasz, skanujesz kod, aby go odblokować, pojazd oznacza, że jest zajęty, a gdy go używasz, gdy zamykasz samochód, pojazd zwolni miejsce zajęcia. Te okupacje i zwolnienia są utrzymywane przez platformę dla nas.
Niektóre obiekty nie są bezpieczne dla wątków, ale za każdym razem, gdy je instancjonujemy, musimy zużyć pewne zasoby.
Najpierw tworzymy nową klasę SqlConnectionPooledObjectPolicy, która dziedziczy interfejs IPooledObjectPolicy <T>i musi zaimplementować jego dwie metody.
Jak instancjonować obiekt w metodzie Create,Return wskazuje, czy obiekt nadal może być ponownie użyty, a gdy falsis zostanie zwrócony, obiekt zostanie usunięty z puli obiektów.
Kod źródłowy testu wygląda następująco:
Wyniki testów są następujące:
Widać, że pula połączeń jest nieco wolniejsza przy pierwszych 10 zapytaniach, a potem szybsza niż przy każdej instancji SqlConnection.
Załączony jest kod źródłowy
Turyści, jeśli chcecie zobaczyć ukrytą zawartość tego wpisu, proszę Odpowiedź
|