前两天接到一个任务:一个VS2015 + qt5 + osgEarth实现的项目,在向osgEarth场景中添加卫星时,用时过长。
- 首先看一下代码逻辑:
点击"添加"按钮并选择要添加的卫星后(我选择了七百多颗卫星),先将卫星相关参数添加到QTableWidget表格中,接着new出一个卫星节点加入到场景中。 - 定位问题
使用clock()函数算出了时间为87s左右,这太久了。于是继续细看代码并使用clock()函数辅助定位具体耗时的位置,最终发现两个一下两个问题:
1)添加卫星时是一个一个添加的,每添加一个都要向QTableWidget中插入一行,代码如下:int lastRow = tableWidget->rowCount(); tableWidget->insertRow(lastRow)