Ho letto che la creazione di una classe sealed
in C# è consigliabile in scenari ad alte prestazioni perché libera il compilatore per rendere certe ottimizzazioni (ad esempio, inlining getter di proprietà) che non sarebbe in grado di fare altrimenti. Lo stesso vale per NotInheritable
in VB.NET? La mia ipotesi sarebbe sì, ma sto postando questa domanda nel caso in cui qualcun altro abbia già investigato e capiti di conoscere la risposta.Fare una classe NotInheritable in VB.NET offre le stesse (potenziali) ottimizzazioni del compilatore come sigillate in C#?
5
A
risposta
8
Sì, l'IL generato per sealed
in C# è identico a NotInheritable
in VB.NET e quelle potenziali ottimizzazioni verranno eseguite dal compilatore JIT che avverrà indipendentemente dalla lingua originale.
Problemi correlati
- 1. Otlang ottimizzazioni del compilatore
- 2. Comprensione delle ottimizzazioni del compilatore C++ MSVS
- 3. Come fare in modo che le ottimizzazioni del compilatore non introducano un rischio per la sicurezza?
- 4. Ottimizzazioni del compilatore di tipi anonimi
- 5. In che modo le ottimizzazioni del compilatore possono influire sulla logica del codice?
- 6. Le ottimizzazioni fatte in LTO sono le stesse della normale compilazione?
- 7. Compilatore .NET - Sono incorporate le ottimizzazioni di loop annidate?
- 8. ottimizzazioni di compilatore in un programma ricorsivo
- 9. VB.NET Comportamento delle parole chiave WithEvents: restrizione del compilatore VB.NET?
- 10. Potenziali insidie con costruttori statici in C#
- 11. cosa fare se due librerie hanno esattamente le stesse classi?
- 12. La classe locale, la classe interna e la classe nidificata sono le stesse cose in C++?
- 13. Come disabilitare le ottimizzazioni tailcall in gcc
- 14. Perché le classi statiche sono sigillate?
- 15. Come disattivare l'ottimizzazione del compilatore in C#?
- 16. Perché dichiarare le classi statiche come sigillate e astratte in C#?
- 17. Alias VB.NET (come in C#)
- 18. C# ottimizzazioni ed effetti collaterali
- 19. Classe astratta/metodo, come C# -> VB.NET
- 20. Le ottimizzazioni del compilatore, come ghc -O2, possono modificare l'ordine (tempo o memoria) di un programma?
- 21. Perché dobbiamo fare [classe MyClass] in Objective-C?
- 22. Ottimizzazioni del CALayer?
- 23. fare una classe immutabili in Java
- 24. Come combinare due tabelle in proprio questa le stesse colonne?
- 25. Come fare le categorie Obj-C in Python?
- 26. Esiste una classe virtuale in C#?
- 27. VB.NET - Cosa fa ": =" fare?
- 28. Analizzatore funzionante ma scompaiono le potenziali correzioni del codice
- 29. Implementazione del metodo statico in VB.NET
- 30. quali sono esattamente le ottimizzazioni in fibra ottica in VC++?
Da ciò che stai dicendo (penso) che il compilatore JIT non è in grado di determinare se esiste una classe derivata in fase di runtime. Posso apprezzare che non è necessariamente semplice farlo (più per le classi pubbliche la cui gerarchia potrebbe attraversare gli assiemi), ma non è questo il genere di cose in cui il JIT dovrebbe migliorare rispetto all'ottimizzazione tradizionale in fase di compilazione? –