I am looking to be able to profile the rendering performance of a map and/or its individual component layers using QGIS.
The metrics I am most interested in are:
Access time
Storage IOPS
Storage time
Network IOPS
Network time
Rendering time
Rendering perf (features/sec or tiles/pixels/sec)
What I am attempting to determine are best-practices for simplification and storage of my data to ensure that it can be viewed and interacted with in the most responsive manner.
A few for-instance questions I'm looking to gain insight on using profiling:
Does FGBD serve faster than SHP?
GeoPackage vs FGDB/SHP?
Does GPKG/SQLite3 page size make a difference?
Does subdivision to fit given geometry segments in a single database page make a difference?
Should I index X/Y/Z attributes in the table, or does the increased database size mitigate the speed gain?
Is it faster to have a geometry table joined to an attribute table, or one aggregated table of geom & attributes both?
I've been researching numerous methods of optimization, but it is hard to find concrete methods of profiling these against one another on my target machine running QGIS.
I currently have a Processing Model that does a few "optimization" steps for me against any input data I have, but I would certainly be open to expanding its repertoire and standardizing upon these best practices.
Currently, I have Snail installed, but it doesn't show nearly as much as the Task Manager that ships with W10 does, so it hasn't been of much use to me for profiling.
Similarly, messages in the Log Messages panel aren't as helpful as I would like.