diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-09-27 11:07:11 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2016-12-15 07:13:54 +0000 |
commit | 0b73b58b4c0acdf750bb640abb1379e855284e45 (patch) | |
tree | 86c04c8c2e6d5c89e559ff74ecde14348a4e118f | |
parent | 7ba9cb93a64e5f6b5eee96e5b42207df0082d6ce (diff) |
QAspectManager: add stat trace for arbiter sync time
Change-Id: Ie2abab5d1116b57a0296ac52cc8a311e31ce2ef7
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r-- | src/core/aspects/qaspectmanager.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/core/aspects/qaspectmanager.cpp b/src/core/aspects/qaspectmanager.cpp index 7a8c09d00..c621038a0 100644 --- a/src/core/aspects/qaspectmanager.cpp +++ b/src/core/aspects/qaspectmanager.cpp @@ -48,6 +48,8 @@ #include <Qt3DCore/private/qservicelocator_p.h> +#include <Qt3DCore/private/qaspectjob_p.h> +#include <Qt3DCore/private/qthreadpooler_p.h> #include <Qt3DCore/private/qtickclockservice_p.h> #include <Qt3DCore/private/corelogging_p.h> #include <Qt3DCore/private/qscheduler_p.h> @@ -270,7 +272,19 @@ void QAspectManager::exec() // // Doing this as the first call in the new frame ensures the lock free approach works // without any such data race. +#ifdef QT3D_JOBS_RUN_STATS + const quint32 arbiterId = 4096; + JobRunStats changeArbiterStats; + changeArbiterStats.jobId.typeAndInstance[0] = arbiterId; + changeArbiterStats.jobId.typeAndInstance[1] = 0; + changeArbiterStats.threadId = reinterpret_cast<quint64>(QThread::currentThreadId()); + changeArbiterStats.startTime = QThreadPooler::m_jobsStatTimer.nsecsElapsed(); +#endif m_changeArbiter->syncChanges(); +#ifdef QT3D_JOBS_RUN_STATS + changeArbiterStats.endTime = QThreadPooler::m_jobsStatTimer.nsecsElapsed(); + QThreadPooler::addJobLogStatsEntry(changeArbiterStats); +#endif // For each Aspect // Ask them to launch set of jobs for the current frame |