qtdeclarative/src/qml
Ulf Hermann 434750f1a6 QmlProfiler: Reduce memory usage for file names and URLs
As the various file names are actually not kept as QStrings in the
respective objects being profiled, our saving them as QStrings in each
and every profiling event is not implicitly shared and causes a huge
memory overhead. Avoid that by saving each location only once, indexed
by a disguised pointer to the object it refers to.

Normally, objects could disappear during the profiling session, and new
objects could be allocated in their place, which would mess up our
indexing system. We prevent that by referencing the objects when we
index them, thus preventing them from getting auto-destructed.

Mind that those are not JavaScript objects but rather functions,
bindings, components and the like. So, this will only cause a memory
leak if you're compiling and dropping QML components over and over.

Task-number: QTBUG-52937
Change-Id: Ia4dfb09a71a5c9a2d6ce25c3811bbe2a1036c1c1
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-05-02 09:03:46 +00:00
..
animations Updated license headers 2016-01-19 14:53:18 +00:00
compiler Use QStringRef to optimize memory allocation 2016-04-26 10:31:19 +00:00
debugger QmlProfiler: Reduce memory usage for file names and URLs 2016-05-02 09:03:46 +00:00
doc Merge remote-tracking branch 'origin/5.6' into 5.7 2016-04-27 08:47:35 +02:00
jit V4 IR: Store the phi-node parameters directly in the class. 2016-03-06 14:25:43 +00:00
jsapi Abort application if QJSEngine is constructed before QCoreApplication 2016-04-28 10:49:49 +00:00
jsruntime V4 profiler: Don't duplicate function locations 2016-05-02 09:03:20 +00:00
memory Merge remote-tracking branch 'origin/5.6' into dev 2016-01-29 13:01:22 +01:00
parser Replace qQNaN() and friends with qt_qnan(). 2016-04-05 13:49:27 +00:00
qml QmlProfiler: Reduce memory usage for file names and URLs 2016-05-02 09:03:46 +00:00
types Qml: use qDeleteAll more 2016-04-27 13:39:22 +00:00
util Fix performance issues when handling layout changed in Quick item views. 2016-04-26 08:42:44 +00:00
Qt5QmlConfigExtras.cmake.in CMake: Make sure to export all plugins 2015-11-02 08:42:52 +00:00
qml.pro consistently put {qt,qml}_{module,plugin} at the end of project files 2016-02-25 16:47:28 +00:00
qtqmlglobal.h Updated license headers 2016-01-19 14:53:18 +00:00
qtqmlglobal_p.h Updated license headers 2016-01-19 14:53:18 +00:00