See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 16497|Vastuse: 5

[Allikas] .NET/C# mitmelõimeline paralleelsus kasutades HttpWebRequest piti

[Kopeeri link]
Postitatud 2021-12-20 15:21:04 | | | |
Ülesannete ajastamisel on ajastamise ülesandeks simuleerida HTTP-päringu algatamist ja avastada, et kui ülesandeid on rohkem, tundub ülesannete ajastamine nagu võlts surm.

Tavapärases Windowsi süsteemis on maksimaalne soovitud ühenduste arv 2, serveri operatsioonisüsteemis on vaikimisi 10. Kui sa seda samaaegset ühenduse piirangut ei muuda,Siis saab klient samaaegselt teha vaid 2 või 10 http-ühendusi

System.Net.ServicePointManager.DefaultConnectionLimit See on maksimaalne ühenduste arv, mis saavad praeguse vaikeseade, nagu näidatud alloleval joonisel:



Kas HttpClientil on vaikimisi paralleelsuse piirang?

Enne .Net 4.0 versiooni tugines Http-operatsioonidele HttpWebRequest. Vaikimisi on sama saidi jaoks väga konservatiivne maksimaalne 2 samaaegsuse piirang, mis sageli põhjustab, et HttpWebRequests ei saavuta vaikimisi ideaalset kiirust (arvan, et see strateegia frustreerib paljusid kodeerijaid) ning App.config või ServicePointManager.DefaultConnectionLimit väärtust tuleb muuta.

MS tutvustas .Net 4.5 versioonis HttpClient klassi Http-operatsioonide haldamiseks ning arvasin, et HttpClient ja HttpWebRequest järgivad sama poliitikat. Täna, kui kirjutasin mitmelõimelist allalaadimisprogrammi, kasutasin 10 samaaegset ühendust ja avastasin, et HttpClientil pole vaikimisi samaaegset numbripiirangut.

Alguses arvasin, et on. Net 4.5 eemaldas selle samaaegsuse piirangu (lõppude lõpuks ei järgi seda standardit enam keegi), ja kirjutas vastava koodi WebRequestiga ümber, leides, et see oli endiselt 2 samaaegsuse piirang ning ServicePointManager.DefaultConnectionLimit väärtus oli samuti 2. See tähendab, et HttpClient ei ole HttpWebRequest samaaegsuse poliitika poolt kontrollitud ning süsteemitasemel samaaegsuse piirangut ei ole.

Lisaks leidsin testimise käigus, et HttpWebRequest ei kasuta vaikimisi maksimaalselt 2 samaaegsust kõigi aadresside puhul. NäiteksKohalike HTTP-aadresside ühenduste (http://localhost/*) paralleelsuse piirangut ei ole.

C# mitmelõimelised keskkonnakõned HttpWebRequest samaaegse ühenduse piirangule

.net HttpWebRequest või WebClient puhul on mitmelõimelise ühenduse piirang, mis on vaikimisi 2 lauaarvuti operatsioonisüsteemides nagu Windows XP ja Windows 7 ning vaikimisi 10 serveri operatsioonisüsteemides. Kui sa seda samaaegset ühenduse piirangut ei muuda, saab klient korraga teha vaid 2 või 10 HTTP-ühendust. Mõne rakenduse, näiteks brauserite või ämblike puhul, on 2 või 10 samaaegsuse arv liiga väike ja mõjutab rakenduse jõudlust oluliselt. See samaaegse ühenduse piirang tuleneb HTTP 1.0 ja HTTP 1.1 standarditest, mis määravad maksimaalselt 2 samaaegset ühendust. Kuid peavoolu brauserid seda reeglit enam ei järgi, kuid .NET raamistik järgib seda reeglit vaikimisi.

Paljud artiklid ütlevad, et HttpWebRequesti asünkroonne ligipääs võib parandada samaaegset jõudlust, kuid olen testinud, et kui sa ei muuda vaikimisi samaaegsete ühenduste arvu, siis sünkroonne või asünkroonne ligipääsu jõudlus ei ole hea.

Saame app.config-is määrata ka maksimaalse samaaegsete ühenduste arvu järgmiselt:

Viiteartikkel

Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.





Eelmine:Xshell Xftp Selle programmi jätkamiseks pead rakendama uusimat...
Järgmine:Maven käsk lükkab kolmanda osapoole jar-paketid Nexuse privaatsetesse hoidlatesse
Postitatud 2021-12-26 17:20:57 |
Õpi õppima。。。。。
Postitatud 2022-1-10 08:42:47 |
Õpi õppima。。。。。
Postitatud 2022-3-8 15:58:54 |
Õppima...
 Üürileandja| Postitatud 2023-2-18 21:47:09 |
Lisaks on lahendus

 Üürileandja| Postitatud 2023-3-10 21:21:15 |
Seadista web.config kaudu

Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com