Commit Graph

8 Commits

Author SHA1 Message Date
Ulf Hermann
34d5322312 QmlProfiler: Don't continue memory usage ranges across other ranges
When a function returns and is called again, without memory being
allocated or freed in between, we don't want to assign any memory
events from the second call to a memory range starting in the first
call.

Change-Id: I3d5cd10381f31ff73849a5a396ad6bda7661afec
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2016-06-06 16:17:04 +00:00
Ulf Hermann
c4079d6ae7 QmlProfiler: Clean up MemoryUsageModel
Don't reimplement locationFromTypeId, make methods public when they are
public in the base class, remove redundant QVariant ctors, inline
memoryTypeName() into the only place where it's used.

Change-Id: I5d780cf27c90a277c13b117c25c80ccce5a4182b
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2016-06-06 14:59:28 +00:00
Ulf Hermann
1b9b59a45f QmlProfiler: Use origin type's ID for memory allocations
We want the editor to jump to the right source location when selecting
different events from the timeline. If all memory events have the same
ID this doesn't work. Now they of course have the IDs of the origin
events, but that's not a problem because when you select first the
memory event and then its origin, the editor position does in fact not
have to change.

As an added benefit, the typeId cannot be -1 anymore now.

Change-Id: I95520eeb3e6902e046f3f552c74dba776e7c8b62
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2016-05-27 09:42:34 +00:00
Tobias Hunger
e6a910bb3d QmlProfiler: Fix warnings about inconsistent use of overrides
Change-Id: I325b5d4371fb662c13a131963b382c77976fc803
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2016-05-24 13:52:45 +00:00
Ulf Hermann
4a1e5a637a QmlProfiler: Drive event loading from the model manager
We want to get rid of the big master list of QmlEvent in
QmlProfilerDataModel, as that gets very large for longer traces. In
order to reduce the dependencies on that list we load the events on the
fly into the child models while they are being received, rather than
having the child models query QmlProfilerDataModel for the event list
later.

As the trace client so far only emitted rangedEvent() for complete
ranges we run into problems with models that need their events sorted.
The rangedEvent() signals were sorted by end time, rather than start
time which makes it inconvenient to analyze them in a stack based way,
for aggregation. This is solved by passing on all the details from the
trace client to the models, with the QmlProfilerDataModel aggregating
the type information before having the events dispatched to the child
models.

Change-Id: I5831a20551f21cf91e27d298a709f604ebd96c3e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2016-05-23 12:31:44 +00:00
Ulf Hermann
5ba6f04d4b QmlProfiler: Load the timeline model data event by event
All the models do the same thing when loading the data: They iterate
the list of events, determine for each one if they accept it, and if
so, they load it. After the list has been fully loaded, they do some
finalization. This can be centralized, and ultimately we won't need to
expose the central QVector<QmlEvent> for that anymore.

Change-Id: Ia82facfdc3968200bbec323a02f2fcc02ac44e9e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2016-05-23 12:04:49 +00:00
Ulf Hermann
e5a38bacc4 Move QmlProfiler specific files from qmldebug to qmlprofiler
These file were not used anywhere else and had no business to be in
qmldebug to begin with. Moving them allows us to drop a number of
namespace qualifications and forces us to rename a few local symbols
in other classes in order to avoid name clashes.

Change-Id: I658ed455eec027cbaddacf2980d2ea6827ae6205
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2016-05-03 15:00:50 +00:00
Ulf Hermann
600e1cdcea Merge QmlProfiler and QmlProfilerExtension plugins
Change-Id: Iaa1de7afda664a7a0779f47d104f863a16a34976
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2016-04-26 14:10:17 +00:00