[Marble-bugs] [Bug 305195] panning is slow during tracking (regression of commit bf31bccb53eb34f6b9d40749edcdcf358c4bde1b)

Bernhard Beschow bbeschow at cs.tu-berlin.de
Fri Aug 17 11:03:47 UTC 2012


https://bugs.kde.org/show_bug.cgi?id=305195

--- Comment #3 from Bernhard Beschow <bbeschow at cs.tu-berlin.de> ---
Here is a backtrace tracking down the source of the performance regression:

#0  Marble::PlacemarkLayout::setCacheData (this=0x827f204) at
/home/shentey/Projekte/marble/src/src/lib/PlacemarkLayout.cpp:270
#1  Marble::PlacemarkLayout::qt_static_metacall (_o=0x827f204, _id=-1226085632,
_a=0xbfffe4c4, _c=<optimized out>) at
/home/shentey/Projekte/marble/build-qt/src/lib/PlacemarkLayout.moc:74
#2  QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from
/lib/libQtCore.so.4
#3  QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&) ()
from /lib/libQtCore.so.4
#4  ?? () from /lib/libQtGui.so.4
#5  QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from
/lib/libQtCore.so.4
#6  QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&) ()
from /lib/libQtCore.so.4
#7  ?? () from /lib/libQtGui.so.4
#8  QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from
/lib/libQtCore.so.4
#9  QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&) ()
from /lib/libQtCore.so.4
#10 KDescendantsProxyModelPrivate::sourceDataChanged (this=0x8130bb8,
topLeft=..., bottomRight=...) at
/home/shentey/Projekte/marble/src/src/lib/kdescendantsproxymodel.cpp:977
#11 KDescendantsProxyModel::qt_static_metacall (_o=<optimized out>,
_id=<optimized out>, _a=0xbfffe9b4, _c=<optimized out>) at
/home/shentey/Projekte/marble/build-qt/src/lib/kdescendantsproxymodel.moc:82
#12 QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from
/lib/libQtCore.so.4
#13 QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&) ()
from /lib/libQtCore.so.4
#14 Marble::GeoDataTreeModel::updateFeature (this=0x8235230, feature=0x8977568)
at /home/shentey/Projekte/marble/src/src/lib/GeoDataTreeModel.cpp:604
#15 Marble::PositionTrackingPrivate::updatePosition (this=0x826e460) at
/home/shentey/Projekte/marble/src/src/lib/PositionTracking.cpp:89

In essence, the call to GeoDataTreeModel::updateFeature() in
PositionTrackingPrivate::updatePosition() causes a complete cache reload in
PlacemarkLayout::setCacheData(). Given that only one out of over 18k placemarks
changed, this seems a bit much of an overhead. Couldn't this be avoided
somehow?

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Marble-bugs mailing list