2015-11-30 29 views
0

我開發的Qt的應用程序,用於調試的目的我寫很多消息的使用qDebug()安慰,我的問題是確實的調試消息導致性能應用。我應該在部署應用程序時將其刪除嗎?Qt的我應該刪除調試信息的發佈版本(部署應用程序)

+0

可能的重複[爲什麼qDebug在Release版本中工作?](http://stackoverflow.com/questions/13494499/why-does-qdebug-work-in-release-builds) – demonplus

回答

1

做在Qt 5,我們有我們可以操縱的實際qInstallMessageHandler全局函數通過提供自己的回調函數來確定是否在運行時輸出日誌消息。 Qt 4中有相同的功能,稱爲qInstallMsgHandler

安裝先前已經定義一個Qt消息處理程序。 返回指向前一個消息處理程序的指針。

消息處理程序是打印出調試消息, 報警,關鍵和致命錯誤消息的功能。 Qt庫(調試 模式)包含數百個警告信息的時 內部錯誤(通常無效函數參數)發生的被打印。 Qt的內置 發佈模式也包含這樣的警告,除非 QT_NO_WARNING_OUTPUT和/或QT_NO_DEBUG_OUTPUT已經在 編譯設置。如果您實現自己的消息處理程序,則可以對這些消息進行總計控制。

在某些應用程序中,發佈產品版本默認只允許qtWarningMsg及更高版本。

是的,記錄可能會影響應用程序的性能。有幾種減少負面影響的技術。最重要的是在一個單獨的線程上隔離日誌記錄輸出(生產應用程序版本主要使用文件並通過Internet發送它們),以便提供文件/其他操作。

1

當然它會有一些impact.It具有較好的去除在釋放模式的調試日誌記錄,可以通過宏觀QT_NO_DEBUG_OUTPUT

相關問題