diff options
author | Lars Knoll <lars.knoll@qt.io> | 2019-01-03 22:57:28 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2019-02-08 21:55:16 +0000 |
commit | a65752c71bd25bbb66bf33d3a82f7901419c5d95 (patch) | |
tree | b54c2092186f9066bed4ed1602ed2981d5122372 /src/testlib/qsignaldumper.cpp | |
parent | a5a859e721e7a1d0c5a3ec6abe2db55d9144bb36 (diff) |
Shave ~5% off from signal emission time
Refactor activate(), so that we eliminate almost all
checks for signal hooks in the common case.
Here are the benchmark numbers showing the improvement
for 100M signal emissions
without change with change
string based connect: 3836 3693
pointer based connect: 4571 4510
not connected: 479 433
disconnected: 559 522
Change-Id: I394e6ea5d5bc96e298e8cc0c763eed78c8041876
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/testlib/qsignaldumper.cpp')
-rw-r--r-- | src/testlib/qsignaldumper.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/testlib/qsignaldumper.cpp b/src/testlib/qsignaldumper.cpp index 8305c5d424..b3360b4e6c 100644 --- a/src/testlib/qsignaldumper.cpp +++ b/src/testlib/qsignaldumper.cpp @@ -170,13 +170,12 @@ void QSignalDumper::startDump() { static QSignalSpyCallbackSet set = { QTest::qSignalDumperCallback, QTest::qSignalDumperCallbackSlot, QTest::qSignalDumperCallbackEndSignal, 0 }; - qt_register_signal_spy_callbacks(set); + qt_register_signal_spy_callbacks(&set); } void QSignalDumper::endDump() { - static QSignalSpyCallbackSet nset = { 0, 0, 0 ,0 }; - qt_register_signal_spy_callbacks(nset); + qt_register_signal_spy_callbacks(nullptr); } void QSignalDumper::ignoreClass(const QByteArray &klass) |