Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.15.0 RC2
-
None
-
Operating System: Windows 10 Pro 64-bit (10.0, Build 19042) (19041.vb_release.191206-1406)
Processor: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz (4 CPUs), ~2.6GHz
Memory: 8192MB RAM
Available OS Memory: 8040MB RAM
Page File: 8175MB used, 2714MB available
DirectX Version: DirectX 12
User DPI Setting: 120 DPI (125 percent)
System DPI Setting: 144 DPI (150 percent)
Microsoft Graphics Hybrid: Not Supported
DirectX Database Version: 1.0.8
Operating System: Windows 10 Pro 64-bit (10.0, Build 19042) (19041.vb_release.191206-1406) Processor: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz (4 CPUs), ~2.6GHz Memory: 8192MB RAM Available OS Memory: 8040MB RAM Page File: 8175MB used, 2714MB available DirectX Version: DirectX 12 User DPI Setting: 120 DPI (125 percent) System DPI Setting: 144 DPI (150 percent) Microsoft Graphics Hybrid: Not Supported DirectX Database Version: 1.0.8
Description
Using a MapView with a large number of MapItem (MapQuickItem,MapPolyLine) takes a long time for initial rendering on a Labtop (2 cores, 2.5 Ghz, 8 MB RAM).
5000*(node + edge + node) takes 12171ms
10000 (node + edge + node) takes *24979ms
The documentation says : Maps are rendered using OpenGL (ES) and the Qt Scene Graph stack, and as a result perform quite well where GL accelerated hardware is available
In our case , the GPU activity seems low, but the CPU seems to be used intensively.
The tool OpenGL extension viewer indicate that OPENGL is available (any advice is welcome).
Some users report that starting with window minimized improve the performances.
Our application uses QAbstractItemModel, but to submit a test with a simple example, we use Qt.createQmlObject to instanciate all items.
Regards
import QtQuick 2.12
import QtQuick.Window 2.12
import QtLocation 5.12
import QtPositioning 5.12
Window {
id : app
width: Screen.width
height: Screen.height
visible: true
property int nbEdges : 10000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Plugin
PluginParameter { name: "osm.mapping.providersrepository.disabled"; value: "true" }
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Plugin
}
property string mqi:'import QtQuick 2.0;import QtLocation 5.3;
MapQuickItem {zoomLevel : map.zoomLevel < 16 ? 16:0;
anchorPoint.x: shape.x+shape.width/2;anchorPoint.y: shape.y+shape.height/2;
sourceItem:Rectangle {id:shape;width: 10;height: width;color: "yellow";radius: width; border.width : 1
MouseArea{anchors.fill:parent;onClicked:{console.log("clicked")}}}}'
property string mpl:'import QtQuick 2.0;import QtLocation 5.3;MapPolyline {}'
Map {
id: map
anchors.fill: parent
plugin: offlinePlugin
center: QtPositioning.coordinate(45.200744,5.703549) // Grenoble
zoomLevel: 14
property MapQuickItem node1
property MapQuickItem node2
property MapPolyline edge
function getRandom(max)
{ return Math.random() * max; } Component.onCompleted: {
console.time("MapBench")
for(var i=0;i<nbEdges;i++)
console.timeEnd("MapBench")
}
}
}