标签:qt qml console log profiler
在调试应用程序时,输出一些log是常用的一种方法。QML提供了log输出的多个api,常用的是console.log(),直接输出参数内容。 console.log(): 与console.log()类似的还有console.debug()/info()/warn()/error(),用法如下 function console_log() { console.log("this is console.log()") console.debug("this is console.debug()") console.info("this is console.info()") console.warn("this is console.warn()") console.error("this is console.error()") } console.assert(): 与C++的Assert类似,成功时无声无息而过,失败时会输出assert内容和相关的文件路径、行号、函数名称等信息,用法如下: function console_assert() { console.assert(1 == 1, "assert 1 == 1") // success console.assert(1 == 2, "assert 1 == 2") // failure console.assert(1 < 2, "assert 1 < 2") // success console.log("assert ends") } console.time(): console.time()与console.timeEnd()一起使用,输出这两个函数之间的程序执行的时间,单位是毫秒,函数的参数比较特殊(要前后对应),用法如下: function console_time() { console.time("wholeFunction") // 函数参数wholeFunction console.time("firstPart") // 函数参数firstPart for (index = 0; index < 10000; index++) { // do something } console.timeEnd("firstPart") // 函数参数firstPart console.time("secondPart") // 函数参数secondPart for (index = 0; index < 10000; index++) { // do something } console.timeEnd("secondPart") // 函数参数secondPart for (index = 0; index < 10000; index++) { // do something } console.timeEnd("wholeFunction") // 函数参数wholeFunction } console.trace(): 输出代码执行的行号、函数名称、文件路径等堆栈信息,最多10条,例如main.qml代码如下: import QtQuick 2.2 Item { width: 360 height: 360 function console_trace() { console.trace() // 调用console.trace() } MouseArea { anchors.fill: parent onClicked: console_trace() } } 点击鼠标时,输出如下log: console_trace (qrc:///main.qml:8) onClicked (qrc:///main.qml:13) console.count(): 输出某个代码块执行的次数,例如main.qml代码如下: import QtQuick 2.2 Item { width: 360 height: 360 function console_count() { console.count("console_count() called") // 调用console.count() } MouseArea { anchors.fill: parent onClicked: { console_count() console_count() } } } 点击鼠标时,输出如下log: console_count() called: 1 console_count() called: 2 console.profile(): QML和JavaScript代码性能分析,console.profile()与console.profileEnd()一起使用,用法如下: function f() { console.profile() // Call some function that needs to be profiled. // Ensure that a client is attached before ending the profiling session. console.profileEnd() } 另,通过QtCreator中的“Analyze->QML Profiler”可以进行QML性能分析。 console.exception(): 输出异常信息,包括行号、函数名称、文件路径等,用法如下: function console_exception() { console.exception("this is an exception") }
标签:qt qml console log profiler
原文地址:http://blog.csdn.net/ieearth/article/details/44015117