visual studio debug code visual-studio performance debugging

visual-studio - debug - go to definition visual studio code



Definir la constante TRACE en.NET/Visual Studio (1)

Presumiblemente, esta casilla de verificación es equivalente a la opción del compilador /define:TRACE . Es posible que desee desactivar esta opción para una compilación de versión ya sea porque no desea que los usuarios finales vean la salida de rastreo por algún motivo (por ejemplo, seguridad) o para mejorar el rendimiento. Por supuesto, el aumento del rendimiento dependerá de la cantidad de trabajo que se realice cuando esté activado, pero el atributo Condicional hará que el compilador elimine completamente la llamada a la función (incluido cualquier formato de cadena, etc.) de la IL generada, por lo que podría hacer una diferencia significativa.

En Visual Studio 2010, si va a las propiedades de un proyecto y va a la pestaña Compilar, hay una casilla de verificación para "Definir la constante de traza". Lo cual es el equivalente a hacer un #define TRACE.

Todos los métodos de System.Diagnostics.Trace tienen un [Conditional("TRACE")] alrededor.

Mi pregunta es por qué alguna vez apagar esto? Quiero decir, si no tiene definido ningún oyente de rastreo, entonces no es como si fuera a llenar un registro o algo así. Me parece extraño. Si está realizando un esfuerzo para realizar llamadas a Trace, ¿por qué no quiere controlarlo a través de App / Web.config, sino que lo controla a través de un compilador, lo que excluye la posibilidad de volver a activarlo sin una recompilación

¿Me estoy perdiendo de algo? Sin duda, no puede ser tan malo para el rendimiento, ¿verdad?