summaryrefslogtreecommitdiffstats
path: root/src/testlib
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2022-10-19 21:32:48 -0700
committerThiago Macieira <thiago.macieira@intel.com>2022-10-24 21:00:11 -0700
commite693a5ccafeace28bd1b60c21f19b9b8ada51366 (patch)
tree5a291471b6ea7710b1a6777e9a08311a79064add /src/testlib
parent483ae6c448ff95354c22e7d6e71117a9f9c40421 (diff)
QBenchlib/Perf: use WalltimeNanoseconds for the task time
Avoids the special case in the code and removes the need to run a large number of iterations to get any useful result, plus makes it's more readable: From: 0.00002125 msecs per iteration (total: 2,125, iterations: 100000000) To: 22.082 nsecs per iteration (total: 22,082, iterations: 1000) Pick-to: 6.4 Change-Id: I3c79b7e08fa346988dfefffd171facc98af9e9fc Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/testlib')
-rw-r--r--src/testlib/qbenchmarkperfevents.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/testlib/qbenchmarkperfevents.cpp b/src/testlib/qbenchmarkperfevents.cpp
index 158f114c30..e10c4473e5 100644
--- a/src/testlib/qbenchmarkperfevents.cpp
+++ b/src/testlib/qbenchmarkperfevents.cpp
@@ -128,8 +128,8 @@ bool QBenchmarkPerfEventsMeasurer::isAvailable()
HARDWARE BUS_CYCLES BusCycles bus-cycles
HARDWARE STALLED_CYCLES_FRONTEND StalledCycles stalled-cycles-frontend idle-cycles-frontend
HARDWARE STALLED_CYCLES_BACKEND StalledCycles stalled-cycles-backend idle-cycles-backend
- SOFTWARE CPU_CLOCK WalltimeMilliseconds cpu-clock
- SOFTWARE TASK_CLOCK WalltimeMilliseconds task-clock
+ SOFTWARE CPU_CLOCK WalltimeNanoseconds cpu-clock
+ SOFTWARE TASK_CLOCK WalltimeNanoseconds task-clock
SOFTWARE PAGE_FAULTS PageFaults page-faults faults
SOFTWARE PAGE_FAULTS_MAJ MajorPageFaults major-faults
SOFTWARE PAGE_FAULTS_MIN MinorPageFaults minor-faults
@@ -309,7 +309,7 @@ static const Events eventlist[] = {
{ 170, PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_MISSES, QTest::CacheMisses },
{ 183, PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_REFERENCES, QTest::CacheReferences },
{ 200, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CONTEXT_SWITCHES, QTest::ContextSwitches },
- { 217, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CPU_CLOCK, QTest::WalltimeMilliseconds },
+ { 217, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CPU_CLOCK, QTest::WalltimeNanoseconds },
{ 227, PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, QTest::CPUCycles },
{ 238, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CPU_MIGRATIONS, QTest::CPUMigrations },
{ 253, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CONTEXT_SWITCHES, QTest::ContextSwitches },
@@ -378,7 +378,7 @@ static const Events eventlist[] = {
{ 1292, PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, QTest::RefCPUCycles },
{ 1303, PERF_TYPE_HARDWARE, PERF_COUNT_HW_STALLED_CYCLES_BACKEND, QTest::StalledCycles },
{ 1326, PERF_TYPE_HARDWARE, PERF_COUNT_HW_STALLED_CYCLES_FRONTEND, QTest::StalledCycles },
- { 1350, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_TASK_CLOCK, QTest::WalltimeMilliseconds },
+ { 1350, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_TASK_CLOCK, QTest::WalltimeNanoseconds },
{ 0, PERF_TYPE_MAX, 0, QTest::Events }
};
/* -- END GENERATED CODE -- */
@@ -570,10 +570,6 @@ static quint64 rawReadValue(int fd)
qint64 QBenchmarkPerfEventsMeasurer::readValue()
{
quint64 raw = rawReadValue(fd);
- if (metricType() == QTest::WalltimeMilliseconds) {
- // perf returns nanoseconds
- return raw / 1000000;
- }
return raw;
}