Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 63300|Svar: 7

[.NET Core] ADO.NET Opret en SqlConnection-forbindelsespool via ObjectPool

[Kopier link]
Opslået den 19-4-2020 kl. 18:51:31 | | | |
ObjectPool er en ny funktion fra Microsoft, Microsoft hjælper os med at vedligeholde nogle objekter, der kan genbruges.

For at sige det enkelt, ligesom med delte cykler, når du bruger den, scanner du koden for at låse den op, betyder køretøjet, at den er optaget, og når du bruger den, når du låser bilen, frigiver køretøjet besætningen. Disse besættelser og frigivelser vedligeholdes alle af platformen for os.

Nogle objekter er ikke trådsikre, men hver gang vi instansierer objektet, skal vi forbruge nogle ressourcer.

Detaljeret forklaring af objektpuljen i .NET Core
https://www.itsvse.com/thread-9152-1-1.html
(Kilde: Architect_Programmer)
Først opretter vi en ny SqlConnectionPooledObjectPolicy-klasse, der arver <T>IPooledObjectPolicy-grænsefladen og skal implementere dens to metoder.

Sådan instansierer man objektet i Create-metoden,Return angiver, om objektet stadig kan genbruges, og når false returneres, slettes objektet fra objektpuljen.

Testkildekoden er som følger:

Testresultaterne er som følger:



Det kan ses, at forbindelsespuljen er lidt langsommere ved de første 10 forespørgsler, og derefter er den hurtigere end hver instansiering af SqlConnection.

Vedhæftet er kildekoden

Turister, hvis I vil se det skjulte indhold i dette indlæg, så vær venligSvar






Tidligere:C#-programmer kører tidskrævende testklasser
Næste:MSSQL Trusted_Connection konfiguration
Opslået den 19-4-2020 kl. 21:58:46 |
Det er noget nyt
Opslået den 30-4-2020 13:05:18 |
Kom og se, støt, sofa
 Udlejer| Opslået den 22-3-2021 15:31:43 |
DefaultObjectPoolProvider-kildekode
MaximumRetained Standardmiljø.ProcessorCount * 2;





 Udlejer| Opslået den 22-3-2021 kl. 15:34:51 |
Det kan også skrives direkte


 Udlejer| Opslået den 23-3-2021 09:50:57 |
Testkode:

maximumRetained er sat til 5, og testen instansieres kun én gang, når den returneres hver gang den bruges, som vist i figuren nedenfor:



Hvis testen ikke returneres, instansieres den 10 gange, selvom den overstiger maksimumRetained-indstillingen på 5, og den ikke kaster en undtagelse; det kan være, at efter brugen er afsluttet, vil den langsomt genbruges, og så vil kun 5 instanser blive bevaret:


 Udlejer| Opslået den 24-3-2021 18:23:44 |
SQL Server Forbindelsespulje (ADO.NET)

Når en bruger kalder Open på en forbindelse, leder poolprocessen efter de tilgængelige forbindelser i poolen. Hvis en poolforbindelse er tilgængelig, returneres den til opkalderen i stedet for at åbne en ny forbindelse. Når applikationen kalder Luk på den forbindelse, returnerer poolprocessen forbindelsen til det aktive forbindelsespoolsæt i stedet for at lukke forbindelsen.

https://docs.microsoft.com/zh-cn ... -connection-pooling

Opslået den 2021-8-17 10:13:07 |
Lær at lære
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com