Qt我应该在发布版本(部署应用程序)上删除调试消息

时间:2015-11-30 06:11:20

标签: qt

我正在Qt中开发一个应用程序,用于调试目的我使用qDebug()向控制台写了很多消息,我的问题是调试消息是否会导致应用程序的性能。我应该在部署应用程序时删除它吗?

2 个答案:

答案 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发送它们)在一个提供文件/其他操作的单独线程上。