visual-studio - 在 .NET/Visual Studio 中定义 TRACE 常量

标签 visual-studio performance debugging

在 Visual Studio 2010 中,如果您转到项目的属性并转到“构建”选项卡,则会有一个“定义跟踪常量”复选框。这相当于执行#define TRACE。

System.Diagnostics.Trace 的所有方法都有一个 [Conditional("TRACE")]在他们旁边。

我的问题是你为什么要关掉它?我的意思是,如果您没有定义任何跟踪监听器,那么您就不会填写日志或其他内容。我只是觉得很奇怪。如果您正在努力调用 Trace,为什么您不想通过 App/Web.config 控制它,而是通过编译器开关控制它,这排除了在没有的情况下重新打开它的可能性重新编译。

我错过了什么吗?当然,它对性能不会那么糟糕,对吧?

最佳答案

大概这个复选框相当于 /define:TRACE编译器选项。您可能希望为发布版本关闭此选项,因为您不希望最终用户出于某种原因(例如安全性)看到跟踪输出,或者是为了提高性能。当然,性能提升将取决于开启时完成了多少工作,但 Conditional attribute将导致编译器从生成的 IL 中完全删除函数调用(包括任何字符串格式等),因此它可能会产生重大影响。

关于visual-studio - 在 .NET/Visual Studio 中定义 TRACE 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8303004/

相关文章:

android - 使用 Google Play Location API 获得速度

java - 哪个效率更高 : atomically modifying an array or synchronizing access to it?

java - JUnit 测试——是什么让它比手动测试更有用?

c++ - Visual Studio C++ - 缺少 "Copy to Output Directory"

c++ - Visual C++ 中的 __PRETTY_FUNCTION__

python - 在没有 Visual Studio 的情况下将 python 代码发布到 Azure 辅助角色

python - 使用其他数据框和系列快速替换 pandas 数据框的信息

rest - 在 PhpStorm 中调试剩余部分

debugging - 如何修改 Fedora 软件包并修复错误

reactjs - 在没有 ASP.NET Core 的 Visual Studio 中使用react