Le dice a NGen que está bien alinear el método al que se aplica incluso en un ensamblaje diferente.
Por ejemplo:
String.Equals
tiene [TargetedPatchingOptOut]
- Escribes un programa que llama
String.Equals
- Ejecutar NGen en este programa para un máximo rendimiento
- NGen alineará la
String.Equals
llamada, reemplazando la instrucción de llamada al método con el código real en el método.
Las llamadas a métodos son (ligeramente) costosas, por lo que este es un aumento de rendimiento para los métodos llamados con frecuencia.
Sin embargo, si Microsoft encuentra un agujero de seguridad String.Equals
, no puede simplemente actualizar mscorlib.dll
, porque eso no afectará el ensamblaje que acaba de NGen'd. (Ya que tiene código máquina sin procesar sin referencia String.Equals
).
Supongo que si eso sucediera realmente, la actualización de seguridad eliminaría la tienda NGen.
Tenga en cuenta que este atributo solo es útil en los ensamblados de .NET Framework. No lo necesitas en la tuya. Puede encontrar más información al respecto aquí: https://stackoverflow.com/a/14982340/631802