Pregunta

Estoy buscando atributos que pueda utilizar para garantizar el mejor rendimiento en tiempo de ejecución de mi aplicación .Net dando sugerencias al cargador, al compilador JIT o a ngen.

Por ejemplo tenemos Atributo depurable que debe configurarse para no depurar ni deshabilitar la optimización para un rendimiento óptimo.

[Debuggable(false, false)]

¿Hay otros que debería conocer?

¿Fue útil?

Solución

Ecma-335 especifica algunas CompilationRelaxations más para el manejo relajado de excepciones (las llamadas llamadas e-relajadas) en el Anexo F "Errores imprecisos", pero Microsoft no las ha expuesto.

Allí se mencionan específicamente CompilationRelaxations.RelaxedArrayExceptions y CompilationRelaxations.RelaxedNullReferenceException.

Sería interesante lo que sucede cuando pruebas algunos números enteros en el ctor de CompilationRelaxationsAttribute;)

Otros consejos

Y otro:Las cadenas literales (cadenas declaradas en el código fuente) son por defecto internado en un grupo para ahorrar memoria.

string s1 = "MyTest"; 
string s2 = new StringBuilder().Append("My").Append("Test").ToString(); 
string s3 = String.Intern(s2); 
Console.WriteLine((Object)s2==(Object)s1); // Different references.
Console.WriteLine((Object)s3==(Object)s1); // The same reference.

Aunque ahorra memoria cuando se usa la misma cadena literal varias veces, mantener el grupo cuesta algo de CPU y una vez que se coloca una cadena en el grupo, permanece allí hasta que se detiene el proceso.

Usando CompilaciónRelajacionesAtributo puede decirle al compilador JIT que realmente no desea que interne todas las cadenas literales.

[assembly: CompilationRelaxations(CompilationRelaxations.NoStringInterning)]

Encontré otro: NeutralRecursosIdiomaAtributo.De acuerdo a este publicación de blog, ayuda al cargador a encontrar los ensamblajes satélite correctos más rápido al especificar la cultura del ensamblaje actual (neutral).

[NeutralResourcesLanguageAttribute("nl", UltimateResourceFallbackLocation.MainAssembly)]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top