Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 54151|Atsakyti: 3

[Šaltinis] .NET/C# atspindys, emisija, išraiškos našumo testavimas

[Kopijuoti nuorodą]
Publikuota: 2021-3-21 13:23:34 | | | |
Straipsnių apie atspindžius apžvalga:

.net/c# naudoja atspindžio dinaminio vykdymo metodą
https://www.itsvse.com/thread-4771-1-1.html

C# naudoja atspindį, kad nustatytų, ar ypatybė priskirta
https://www.itsvse.com/thread-3045-1-1.html

C# atspindys gauna objekto ypatybės rodomą pavadinimą
https://www.itsvse.com/thread-3219-1-1.html
Apie EMIT apžvalgą:

.NET/C# Išleidžia dinamiškai generuojamus rinkinius
https://www.itsvse.com/thread-9597-1-1.html
Pirmiausia sukurkite paprastą objektą, sukurkite objektą ir naudokite emit ir išraišką, kad perskaitytumėte ir modifikuotumėte objekto reikšmę, ir pamatysite, kad vykdymo rezultatas yra toks, kokio tikėtasi, kaip parodyta paveikslėlyje žemiau:



Lyginamoji analizė naudojant BenchmarkDotNet lyginamajai analizei, skaitant tik objektų reikšmes testavimui, veikiant Net472 ir NetCoreApp31, testo rezultatai yra tokie:


.NET/C# naudoja BenchmarkDotNet kodo našumui patikrinti
https://www.itsvse.com/thread-9576-1-1.html


Suvestinė:

Tiek emitavimas, tiek išraiška yra efektyvesni nei atspindžio naudojimas reikšmėms gauti, o .NET 4.7.2 sistemoje emisija yra geresnė nei išraiškos vykdymo efektyvumas, tačiau .NET Core 3.1 sistemoje išraiška yra geresnė nei vykdymas.

Jei jūsų programai reikia dinamiškai vykdyti objektą tik vieną kartą, rekomenduojama naudoti atspindį (juk nereikia dar kartą inkapsuliuoti ar kurti atstovo), o jei jūsų programai reikia dinamiškai vykdyti objektą kelis kartus, rekomenduojama naudoti emit arba išraišką, ir, žinoma, reikalingas tolesnis inkapsuliavimas.

Bandymo kodas yra toks:

Naudojant išraišką objekto reikšmėms gauti, klaida bus pranešta taip:

System.Int32 tipo išraiška negali būti naudojama grąžinimo tipui System.Object
Aš tikrai nežinau, kaip šie žmonės jį naudoja, jie tik žino, kaip kopijuoti ir įklijuoti!




Ankstesnis:.NET/C# Išleidžia dinamiškai generuojamus rinkinius
Kitą:.NET Core iškviečia gRPC HTTP (ne TLS apsaugotas) adreso klaidų sprendimus
 Savininkas| Publikuota: 2025-4-28 14:53:41 |
Naudokite išraišką, jei norite priskirti reikšmes objekto ypatybėms:


Skambinkite:
 Savininkas| Publikuota: 2025-4-28 15:32:51 |
.NET/C# Naudokite "UnsafeAccessor" tik skaitomo lauko turiniui modifikuoti
https://www.itsvse.com/thread-10997-1-1.html
 Savininkas| Publikuota: 2025-4-28 15:40:57 |
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com