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 TRACE". Lo cual es el equivalente a hacer un #define TRACE.Defina la constante TRACE en .NET/Visual Studio
Todos los métodos de System.Diagnostics.Trace tienen un [Conditional("TRACE")]
alrededor de ellos.
Mi pregunta es ¿por qué podría 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
¿Echo de menos algo? Sin duda, no puede ser tan malo para el rendimiento, ¿verdad?
El seguimiento de llamadas() no es gratuito, incluso si no hay oyentes. Hacerlo muy caro no es difícil. –
No creo que sea lo suficientemente granular. Es posible que desee rastrear solo ciertos tipos de eventos en la implementación (advertencia, error) para registrarlos, mientras que en la depuración es posible que desee todo (información, detallado, etc.). Realmente debería haber TRACE_ERROR, TRACE_VERBOSE, etc. – luksan
Consulte http://stackoverflow.com/questions/6911863/setting-up-ac-sharp-application-for-max-performance-build para obtener más información acerca de TRACE y optimizar su construcción . – MBentley