aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <[email protected]>2024-01-19 15:31:22 +0100
committerEike Ziller <[email protected]>2024-01-22 13:50:39 +0000
commit1a84ae038df0757f44d890ad3d5b2e055d5dda7e (patch)
treeddc60ed3a6b924ebf1bfc529b4febb30db8b9ab0
parent7d7f97a74775ff9a6a69d378b5dc40f20951fc3c (diff)
Build nanotrace profiling by default
And enable its availability for startup performance measurement. Makes it possible to run with `-trace <filepath>`, creating a CTF for startup performance, without requiring a special QtC build. Usage in QmlDesigner/DesignStudio is guarded by an additional DESIGNSTUDIO_USE_NANOTRACE CMake option (default off), since that adds a menu item that should usually not be shown. Change-Id: I87200745cc32f256bcaaba21f139b4104459e49a Reviewed-by: hjk <[email protected]> Reviewed-by: <[email protected]> Reviewed-by: Knud Dollereder <[email protected]>
-rw-r--r--src/libs/nanotrace/CMakeLists.txt8
-rw-r--r--src/libs/qmlpuppetcommunication/interfaces/nodeinstanceglobal.h2
-rw-r--r--src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp2
-rw-r--r--src/tools/qml2puppet/instances/nodeinstanceclientproxy.cpp6
-rw-r--r--src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp2
-rw-r--r--src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.cpp2
7 files changed, 15 insertions, 9 deletions
diff --git a/src/libs/nanotrace/CMakeLists.txt b/src/libs/nanotrace/CMakeLists.txt
index c504a112e37..f2fa830e2d3 100644
--- a/src/libs/nanotrace/CMakeLists.txt
+++ b/src/libs/nanotrace/CMakeLists.txt
@@ -1,5 +1,4 @@
add_qtc_library(Nanotrace
- BUILD_DEFAULT OFF
PUBLIC_DEFINES NANOTRACE_ENABLED
SOURCES
nanotraceglobals.h
@@ -10,3 +9,10 @@ add_qtc_library(Nanotrace
CXX_VISIBILITY_PRESET default
VISIBILITY_INLINES_HIDDEN OFF
)
+
+option(DESIGNSTUDIO_USE_NANOTRACE
+ "Enables collecting performance data with nanotrace for Design Studio" OFF)
+extend_qtc_library(Nanotrace
+ CONDITION DESIGN_STUDIO_USE_NANOTRACE
+ PUBLIC_DEFINES NANOTRACE_DESIGNSTUDIO_ENABLED
+)
diff --git a/src/libs/qmlpuppetcommunication/interfaces/nodeinstanceglobal.h b/src/libs/qmlpuppetcommunication/interfaces/nodeinstanceglobal.h
index aefaeb88e3f..d5a715f1d86 100644
--- a/src/libs/qmlpuppetcommunication/interfaces/nodeinstanceglobal.h
+++ b/src/libs/qmlpuppetcommunication/interfaces/nodeinstanceglobal.h
@@ -54,7 +54,7 @@ enum class View3DActionType {
constexpr bool isNanotraceEnabled()
{
-#ifdef NANOTRACE_ENABLED
+#ifdef NANOTRACE_DESIGNSTUDIO_ENABLED
return true;
#else
return false;
diff --git a/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp b/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp
index 39da5f99ba7..713a61abf3d 100644
--- a/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp
@@ -106,7 +106,7 @@ void BaseConnectionManager::readDataStream(Connection &connection)
in >> command;
connection.blockSize = 0;
-#ifdef NANOTRACE_ENABLED
+#ifdef NANOTRACE_DESIGNSTUDIO_ENABLED
if (command.typeId() != QMetaType::type("PuppetAliveCommand")) {
if (command.typeId() == QMetaType::type("SyncNanotraceCommand")) {
SyncNanotraceCommand cmd = command.value<SyncNanotraceCommand>();
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
index 7e65f9ce341..a519531d3cc 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
@@ -172,7 +172,7 @@ QString NodeInstanceServerProxy::qrcMappingString() const
void NodeInstanceServerProxy::writeCommand(const QVariant &command)
{
-#ifdef NANOTRACE_ENABLED
+#ifdef NANOTRACE_DESIGNSTUDIO_ENABLED
if (command.typeId() == QMetaType::type("SyncNanotraceCommand")) {
SyncNanotraceCommand cmd = command.value<SyncNanotraceCommand>();
NANOTRACE_INSTANT_ARGS("Sync", "writeCommand",
diff --git a/src/tools/qml2puppet/instances/nodeinstanceclientproxy.cpp b/src/tools/qml2puppet/instances/nodeinstanceclientproxy.cpp
index 1afdd52bb0c..a7ab2bf8737 100644
--- a/src/tools/qml2puppet/instances/nodeinstanceclientproxy.cpp
+++ b/src/tools/qml2puppet/instances/nodeinstanceclientproxy.cpp
@@ -58,7 +58,7 @@
// Nanotrace headers are not exported to build dir at all if the feature is disabled, so
// runtime puppet build can't find them.
-#if NANOTRACE_ENABLED
+#if NANOTRACE_DESIGNSTUDIO_ENABLED
#include "nanotrace/nanotrace.h"
#else
#define NANOTRACE_INIT(process, thread, filepath)
@@ -185,7 +185,7 @@ void NodeInstanceClientProxy::writeCommand(const QVariant &command)
exit(-1);
}
} else if (m_outputIoDevice) {
-#ifdef NANOTRACE_ENABLED
+#ifdef NANOTRACE_DESIGNSTUDIO_ENABLED
if (command.typeId() != QMetaType::type("PuppetAliveCommand")) {
if (command.typeId() == QMetaType::type("SyncNanotraceCommand")) {
SyncNanotraceCommand cmd = command.value<SyncNanotraceCommand>();
@@ -390,7 +390,7 @@ void NodeInstanceClientProxy::readDataStream()
static quint32 blockSize = 0;
QVariant command = readCommandFromIOStream(m_inputIoDevice, &readCommandCounter, &blockSize);
-#ifdef NANOTRACE_ENABLED
+#ifdef NANOTRACE_DESIGNSTUDIO_ENABLED
if (command.typeId() != QMetaType::type("EndNanotraceCommand")) {
if (command.typeId() == QMetaType::type("SyncNanotraceCommand")) {
SyncNanotraceCommand cmd = command.value<SyncNanotraceCommand>();
diff --git a/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp b/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp
index 46a8c605320..f3227e386cc 100644
--- a/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp
+++ b/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp
@@ -50,7 +50,7 @@
// Nanotrace headers are not exported to build dir at all if the feature is disabled, so
// runtime puppet build can't find them.
-#if NANOTRACE_ENABLED
+#if NANOTRACE_DESIGNSTUDIO_ENABLED
#include "nanotrace/nanotrace.h"
#else
#define NANOTRACE_SCOPE(cat, name)
diff --git a/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.cpp b/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.cpp
index 968f86ca6f7..fca884e94b3 100644
--- a/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.cpp
+++ b/src/tools/qml2puppet/qml2puppet/instances/qt5nodeinstanceserver.cpp
@@ -19,7 +19,7 @@
// Nanotrace headers are not exported to build dir at all if the feature is disabled, so
// runtime puppet build can't find them.
-#if NANOTRACE_ENABLED
+#if NANOTRACE_DESIGNSTUDIO_ENABLED
#include "nanotrace/nanotrace.h"
#else
#define NANOTRACE_SCOPE(cat, name)