Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 54151|Odpoveď: 3

[Zdroj] .NET/C# Testovanie výkonu reflexie, emitovania, výrazu

[Kopírovať odkaz]
Zverejnené 2021-3-21 13:23:34 | | | |
Recenzia článkov o reflexiách:

.NET/C# využíva metódu dynamického vykonávania reflexií
https://www.itsvse.com/thread-4771-1-1.html

C# používa reflexiu na určenie, či je vlastnosť priradená
https://www.itsvse.com/thread-3045-1-1.html

C# reflexia získava zobrazovací názov vlastnosti objektu
https://www.itsvse.com/thread-3219-1-1.html
O EMIT Review:

.NET/C# Emit dynamicky generuje zostavy
https://www.itsvse.com/thread-9597-1-1.html
Najprv vytvorte jednoduchý objekt, inštancujte objekt a použite emit a expression na čítanie a úpravu hodnoty objektu, pričom uvidíte, že výsledok vykonania je očakávaný, ako je znázornené na obrázku nižšie:



Benchmark používajúci BenchmarkDotNet na benchmarking, čítanie iba objektových hodnôt na testovanie, bežiaci na Net472 a NetCoreApp31, výsledky testu sú nasledovné:


.NET/C# používa BenchmarkDotNet na testovanie výkonu kódu
https://www.itsvse.com/thread-9576-1-1.html


Súhrn:

Emit aj expression sú efektívnejšie ako použitie reflection na získanie hodnôt a v .NET 4.7.2 frameworku je emit lepší ako efektivita vykonávania expression, ale v .NET Core 3.1 frameworku je expression lepšie ako emit execution.

Ak váš program potrebuje dynamicky vykonať objekt iba raz, odporúča sa použiť reflection (napokon, nie je potrebné znovu zapuzdrovať alebo vytvárať delegáta), a ak váš program potrebuje dynamicky vykonávať objekt viackrát, odporúča sa použiť emit alebo expression, a samozrejme je potrebná ďalšia enkapsulácia.

Testovací kód je nasledovný:

Pri použití Expression na získanie hodnôt objektov sa chyba hlási nasledovne:

Výraz typu 'System.Int32' nemôže byť použitý pre návratový typ 'System.Object'
Naozaj neviem, ako to títo ľudia používajú, vedia len kopírovať a vkladať!




Predchádzajúci:.NET/C# Emit dynamicky generuje zostavy
Budúci:.NET Core volá gRPC HTTP (non-TLS protected) riešenia adries
 Prenajímateľ| Zverejnené 28. 4. 2025 o 14:53:41 |
Použite Expression na priradenie hodnôt vlastnostiam objektu:


Výzva:
 Prenajímateľ| Zverejnené 28. 4. 2025 o 15:32:51 |
.NET/C# Použite UnsafeAccessor na úpravu obsahu iba na čítanie
https://www.itsvse.com/thread-10997-1-1.html
 Prenajímateľ| Zverejnené 28. 4. 2025 o 15:40:57 |
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com