aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/debugger/qqmlprofilerservice_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Move QtQuick profiling to own profiler adapterUlf Hermann2014-02-151-58/+0
| | | | | | | | The QtQuick parts of the QML profiler service thus become a proper global profiler which can be independently enabled and disabled. Change-Id: Ifad03801cab2be66a264fc46fdebdae582fcc99b Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Infrastructure for supporting multiple profilers in qqmlprofilerserviceUlf Hermann2014-02-131-74/+37
| | | | | | | | | The concepts of "global" and "engine" profilers are introduced. Profilers can either be attached to specific QML engines and run in their threads or they can be unspecific global profilers running in arbitrary threads. Change-Id: I3862fc65c07ccb33a1ca08cd2425e4079d3ffc02 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Unify initial waiting of debug servicesUlf Hermann2014-02-101-4/+2
| | | | | | | | | | | | The debug services generally behave in one of two ways when initializing: Either they block the initializing thread until some configuration is passed over the network or they just go on. By introducing a generalized configurable debug service the various ways of waiting on initialization are cleaned up. The API defined for it also allows for engine-specific initialization. Change-Id: Id5685ef17d2a7eb1222629f7caa5ec53076d47b2 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Change QQmlProfilerService::instance to be a getterUlf Hermann2014-01-291-24/+24
| | | | | Change-Id: Id2eb973443cc73aac3a06f94c98b52334d9766a3 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Make sure a profiling range is started for every handled signalUlf Hermann2014-01-271-11/+10
| | | | | | | | | If we allow an endRange() without a startRange() before the range nesting can get confused. Also, it's enough to check the existence of the profiler once. Change-Id: I255675d6e23505b6f29196c0470892f6d778e7b4 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Merge remote-tracking branch 'origin/stable' into devSimon Hausmann2014-01-241-2/+15
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: src/imports/dialogs/qquickmessagedialog.cpp src/imports/dialogs/qquickmessagedialog_p.h src/qml/debugger/qqmlprofilerservice_p.h src/qml/jsruntime/qv4regexpobject.cpp tests/auto/qml/debugger/qqmlprofilerservice/qqmlprofilerservice.pro Change-Id: Ic8a43366b44d6970966acbf03b206d0dee00c28d
| * Retrieve detailed location information when profiling signal handlersUlf Hermann2014-01-211-4/+15
| | | | | | | | | | | | | | | | | | Use the Functions associated with signal handlers to find out which exact code is being executed. Task-number: QTCREATORBUG-11100 Change-Id: Idfae9d188b17977b55f551e6fe766042fe24e786 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Further pack messages for QQmlProfilerServiceUlf Hermann2014-01-221-69/+74
| | | | | | | | | | | | | | | | | | | | | | Allow multiple detailTypes in each packet and extend the profiling code to make use of that. Note that this changes the usual order of pixmapSizeKnown and PixmapLoadingFinished events. As far as I can see this doesn't affect the QML profiler frontend and the order of these events isn't specified anywhere. Change-Id: Id39ad98594ccf35add4415e08daf9e92ab561237 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Put calls to QQmlVmeProfiler behind "if (enabled)" macrosUlf Hermann2014-01-221-23/+23
| | | | | | | | | | | | | | | | | | | | The construction of arguments to those calls may be expensive and should be avoided if we're not really profiling. Task-number: QTBUG-35315 Change-Id: I558fa4cae6cf532d22193283f1ee2a3b680e2eee Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Put multiple QML profiling messages into one object where possibleUlf Hermann2014-01-221-145/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As most of the QML profiling messages only use a small subset of the available fields in QQmlProfilerData we can a, reduce the size of QQmlProfilerData by using unions b, put multiple messages into one object where their data doesn't overlap Furthermore we can add another field for saving QUrl members in QQmlProfilerData so that we can combine more different messages and don't have to convert from QUrl to QString while profiling. This should reduce the impact of the profiling code on the performance of the application being profiled. Task-number: QTBUG-35315 Change-Id: Iecd61e90cc8490d2efbbb381391d98dfee61d3cd Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Unify calls to profiler service event methods.Ulf Hermann2014-01-221-76/+129
| | | | | | | | | | | | | | | | | | | | | | | | Don't needlessly duplicate information about the profiler being available and allow inlining. Use macros to check availability of the profiler in calling code and generally simplify the code. Task-number: QTBUG-35315 Change-Id: I0a9daec4a95f74b9db795ef2918a01fb772ea107 Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | Make sure QQmlVmeProfiler methods can be inlinedUlf Hermann2014-01-171-10/+95
|/ | | | | | | | Move the definitions to the header and adapt the documentation. Task-number: QTBUG-35315 Change-Id: I511a192cfe1e3e09ade035175cb8f3f332022143 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Remove redundant copies of enabled flag in QML profilerUlf Hermann2014-01-091-50/+22
| | | | | | Task-number: QTBUG-35315 Change-Id: Idd35a330531722cb3d4e0d3e95cb3be6e5697688 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Correctly profile the size of loaded pixmapsUlf Hermann2013-12-091-3/+3
| | | | | | | | | | Only set the sizes when they're known, prefer request size to implicit size (as the request size is what ends up in the cache), and don't set the size twice. Task-number: QTBUG-35337 Change-Id: Ie516a1cae2d9050f61362ee99cf8a6a9dd8ea3bb Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Add a stack-based object creation profilerUlf Hermann2013-11-291-0/+49
| | | | | | | | | | | | | | | The simple instantiate-in-context way of profiling object creation doesn't work anymore because the VME's contexts don't necessarily map to C++ contexts anymore. The new profiler introduces two stacks of contexts, one for currently running ranges (such as components) and one for ranges that will be revived later to profile componentComplete() and similar things. Task-number: QTCREATORBUG-10631 Change-Id: Idf19b2adf062bc9c185b3bb5ff5229381f577645 Reviewed-by: Ulf Hermann <ulf.hermann@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Remove old qml object creation profilingUlf Hermann2013-11-291-35/+0
| | | | | | | | | | The old way the object creation profiler works is unsuitable for detailed profiling as it only tracks top level components. Task-number: QTCREATORBUG-10631 Change-Id: I502d0e144f2965f5e09af8461b50b56c61de5b4b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* QmlProfiler: SceneGraph profilingChristiaan Janssen2013-05-061-2/+30
| | | | | Change-Id: Ide71b330b13fc3816ed191bd9af84e0fce0d9587 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* QmlProfiler: Pixmap CacheChristiaan Janssen2013-04-301-3/+63
| | | | | Change-Id: Ibc237bb162c24030438b89d54fa8802ee66b080a Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Remove QT_{BEGIN,END}_HEADER macro usageSergio Ahumada2013-01-281-4/+0
| | | | | | | | | | | The macro was made empty in qtbase/ba3dc5f3b56d1fab6fe37fe7ae08096d7dc68bcb and is no longer necessary or used. Discussed-on: http://lists.qt-project.org/pipermail/development/2013-January/009284.html Change-Id: Ia07e99676e0134fde5e32880edb95e57c779a7ff Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Alan Alpert <aalpert@rim.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-101-1/+1
| | | | | | Change-Id: I6c3bd7bebe3d62d1cfd0fa6334544c9db8398c76 Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-231-24/+24
| | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: Ie7f5d49ed8235d7a7845ab68f99ad1c220e64d5c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Remove unnecessary exportsMatthew Vogt2012-05-181-1/+1
| | | | | | | | | Reduce library load time by removing any exports which are not required by existing clients. Task-number: QTBUG-24768 Change-Id: Ia5754d6f97bb2ed46e290820a5b092f85a4bc5b0 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Don't pass the expression string to the signal handler profiler.Michael Brasser2012-05-141-4/+1
| | | | | | | | | Working towards removing the need to store a copy of the expression string in the expression. Author: Christiaan Janssen <christiaan.janssen@nokia.com> Change-Id: I2cedfcf455c9aa4f1fb2ed422533945371038c58 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* QmlProfiler: storing binding typeChristiaan Janssen2012-05-041-3/+12
| | | | | Change-Id: If1f02e1e6f6ce6aba9874a63d01a08d57571f991 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* Debugger: Fix race conditions in block modeKai Koehne2012-04-251-2/+4
| | | | | | | | | | | | Using waitForMessage() in the constructor after registerService() is _not_ safe: You might get the first message already after the registerService() and before the waitForMessage() call. Instead, use QMutex/QWaitCondition to block the initialization. Also make the use of the block mode explicit, since the service might already be enabled also for non-blocking modes ... Change-Id: I387bfe0627c80e2029acff71f86d12cd9ab58de1 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* Support and use parameters in QQmlNotifierEndpoint.Michael Brasser2012-04-231-2/+2
| | | | | | | | | Allow QQmlNotifierEndpoint to support signals with parameters. Update QQmlBoundSignal to use this support. Change-Id: Ie2a245b39283b0b66d66bd2350e8bc85fe519bb5 Reviewed-by: Chris Adams <christopher.adams@nokia.com>
* Merge remote-tracking branch 'origin/master' into api_changesLars Knoll2012-04-111-25/+12
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/debugger/qqmlprofilerservice_p.h src/qml/qml/qqmlboundsignal.cpp src/qml/qml/v4/qv4bindings.cpp src/quick/items/qquickshadereffect.cpp src/quick/particles/qquickcustomparticle.cpp src/quick/qtquick2.cpp Change-Id: Ia9c6517035ae912fa75e77473a452bd3383def56
| * Revert "Add QQmlBoundSignalNoParams"Michael Brasser2012-04-031-23/+10
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit ec7deb3d123bb44b5d57590615a60ed48b1d2860. Other Qt modules may be relying on QObject::receivers() to know when there is a QML signal handler for a signal, and using QQmlNotifierEndpoint in QQmlBoundSignalNoParams breaks this assumption. Change-Id: I1b8085254697d909f85a88617eb4e3f258b88950 Reviewed-by: Chris Adams <christopher.adams@nokia.com>
| * Use minimal javascript expression for bound signalsChris Adams2012-03-291-4/+4
| | | | | | | | | | | | | | | | | | | | | | Previously, QQmlBoundSignal used QQmlExpression internally. This commit adds a new, more optimal QQmlJavaScriptExpression subclass specifically designed for QQmlBoundSignal, and converts the code to use it instead of QQmlExpression where appropriate. Task-number: QTBUG-24460 Change-Id: I2865a119ce840235e27a7722d8052ca61c265f69 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* | Merge master into api_changesKent Hansen2012-03-271-10/+23
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/debugger/qqmlenginedebugservice.cpp src/qml/debugger/qqmlprofilerservice_p.h src/qml/qml/qqmlboundsignal.cpp src/qml/qml/qqmlpropertycache.cpp src/quick/util/qquickimageprovider.cpp Change-Id: I0609aa5ed54c7769f1e2773a96a7cd43a69f133c
| * Add QQmlBoundSignalNoParamsqt-v5.0.0-alpha1Michael Brasser2012-03-271-10/+23
| | | | | | | | | | | | | | | | This class is used for signal handlers with no parameters, and is more lightweight than QQmlBoundSignal. Change-Id: Ie63eb989d334906657fd16fe35386df198654c28 Reviewed-by: Chris Adams <christopher.adams@nokia.com>
* | Merge master into api_changesKent Hansen2012-03-231-36/+23
|\| | | | | | | | | | | | | | | Conflicts: src/qml/qml/qqmlboundsignal.cpp src/qml/qml/qqmlpropertycache.cpp Change-Id: I5193a193fa301c0b518291645bf626a5fa07118f
| * QmlProfiler: Make sure there's minimal overhead when not enabledKai Koehne2012-03-191-29/+23
| | | | | | | | | | | | | | | | | | Do expensive operations directly in the constructor, guarded by and if (enabled). Also assert if the methods where this isn't feasible are called altough debugging hasn't been enabled. Change-Id: Ieaa3c71730042a88af2270203ea747af42ba5c58 Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
| * QmlProfiler: Do not log expression for bindingKai Koehne2012-03-191-7/+0
|/ | | | | | | In Qt Creator 2.5, we're getting the exact text from the local sources anyway. Change-Id: I419e8e7d8cc8831b682ce619a4f8394e5be49c50 Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
* Merge master <-> api_changesMatthew Vogt2012-03-051-19/+139
| | | | Change-Id: Iad2f07b989b25349fd2d4fff010e24dcd5a1688f
* Rename QDeclarative symbols to QQuick and QQmlMatthew Vogt2012-02-241-0/+183
Symbols beginning with QDeclarative are already exported by the quick1 module. Users can apply the bin/rename-qtdeclarative-symbols.sh script to modify client code using the previous names of the renamed symbols. Task-number: QTBUG-23737 Change-Id: Ifaa482663767634931e8711a8e9bf6e404859e66 Reviewed-by: Martin Jones <martin.jones@nokia.com>