我正在Qt中开发一个应用程序,用于调试目的我使用qDebug()
向控制台写了很多消息,我的问题是调试消息是否会导致应用程序的性能。我应该在部署应用程序时删除它吗?
答案 0 :(得分:2)
当然会产生一些影响。最好在发布模式下删除调试日志,可以通过宏QT_NO_DEBUG_OUTPUT
来完成
答案 1 :(得分:2)
在Qt 5中,我们有qInstallMessageHandler全局函数,我们可以通过提供自己的回调函数来操作实际的日志输出,该函数决定是否在运行时输出日志消息。 Qt 4中有相同的功能,称为qInstallMsgHandler。
安装先前已定义的Qt消息处理程序。 返回指向前一个消息处理程序的指针。
消息处理程序是打印出调试消息的函数, 警告,严重和致命的错误消息。 Qt库(调试 mode)包含数百条在打印时发出的警告消息 发生内部错误(通常是无效的函数参数)。 Qt建成 在发布模式中也包含此类警告,除非 QT_NO_WARNING_OUTPUT和/或QT_NO_DEBUG_OUTPUT已设置 汇编。如果您实现自己的消息处理程序,则会获得总计 控制这些信息。
在某些应用程序中,默认情况下,发布版本仅允许qtWarningMsg及更高版本。
是的,日志记录可能会影响应用程序的性能。有几种减少负面影响的技术。最重要的一个是隔离日志输出(生产应用程序版本主要使用文件并通过Internet发送它们)在一个提供文件/其他操作的单独线程上。