c++ - 登录 C++(性能考虑)

标签 c++ performance debugging logging

我是 cpp 的新手(来自 Java)。 我正在写一个 cpp 应用程序。该应用程序对性能至关重要。 我寻找了一个日志框架,然后找到了 log4cxx 在上面链接的末尾有性能部分解释:

When logging is turned off entirely or just for a set of levels, the cost of a log request consists of a method invocation plus an integer comparison

我记得以前在大学时,我们使用 #ifndf 来包装日志记录。

问题:

  1. #ifndf 包装日志记录仍然是标准做法吗?

  2. 有没有类似于下面的伪代码?

logger.Log_Debug(() => { "My complicated log message " + thisFunctionTakesALongTime() + " will take no time" });

最佳答案

您可以创建自己的在 Release模式下不执行任何操作的宏:

#ifdef _DEBUG
#define LOG_DEBUG(x) logger.Log_Debug(x)
#else
#define LOG_DEBUG(x)
#endif

关于c++ - 登录 C++(性能考虑),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11676344/

相关文章:

c++ - 在 g++ 中使用 -pass-exit-codes 时出现意外退出状态

c++ - 我的算法的复杂性

php - 优化 jQuery 速度

c++ - Code::Block 未创建调试版本?

com - 内存不足错误 - 用于查找经典 ASP 内存泄漏的工具?

c++ - 如何从友元类访问抽象类的私有(private)成员?

performance - 如何清除 MacOSX 上的目录/inode 缓存

performance - 我如何从预取内在函数中获得可衡量的好处?

c++ - 如何输入某个文件,同时将某些部分分配到不同的变量中

c++ - 在 OpenCV C++ 中打印出(Mat)矩阵的值