D9822: Add benchmarks for KDirWatch
Milian Wolff
noreply at phabricator.kde.org
Thu Jan 11 15:11:38 UTC 2018
mwolff created this revision.
mwolff added a reviewer: dfaure.
Restricted Application added a project: Frameworks.
Restricted Application added a subscriber: Frameworks.
mwolff requested review of this revision.
REVISION SUMMARY
All benchmarks create a relatively large directory tree and then
watch that recursively. On my system, the timings are:
RESULT : KDirWatch_UnitTest::benchCreateTree():
34.2 msecs per iteration (total: 342, iterations: 10)
PASS : KDirWatch_UnitTest::benchCreateWatcher()
RESULT : KDirWatch_UnitTest::benchCreateWatcher():
13.6 msecs per iteration (total: 137, iterations: 10)
PASS : KDirWatch_UnitTest::benchNotifyWatcher()
RESULT : KDirWatch_UnitTest::benchNotifyWatcher():
113.7 msecs per iteration (total: 1,138, iterations: 10)
Note that this time includes wait/sleep time and the latency
induced by the kernel for the inotify events to arrive. Measuring
on-CPU time can be done by passing `-perf` to the benchmarks:
PASS : KDirWatch_UnitTest::benchCreateTree():
RESULT : KDirWatch_UnitTest::benchCreateTree():
165,910,830.4 CPU cycles per iteration (total: 1,659,108,304, iterations: 10)
PASS : KDirWatch_UnitTest::benchCreateWatcher()
RESULT : KDirWatch_UnitTest::benchCreateWatcher():
64,014,469.8 CPU cycles per iteration (total: 640,144,699, iterations: 10)
PASS : KDirWatch_UnitTest::benchNotifyWatcher()
RESULT : KDirWatch_UnitTest::benchNotifyWatcher():
316,077,005.5 CPU cycles per iteration (total: 3,160,770,055, iterations: 10)
The first benchmark measures the time it takes to create the large
directory. See below for why this is useful information.
The second measures how long it takes to add the root dir
and its contents recursively.
The third one touches all files in the tree and measure how long it
takes until all dirty signals arrive. If you subtract that measurement
from the third benchmark, you arrive at the overhead imposed by
KDirWatch. At this point, it's quite high!
REPOSITORY
R244 KCoreAddons
REVISION DETAIL
https://phabricator.kde.org/D9822
AFFECTED FILES
autotests/kdirwatch_unittest.cpp
To: mwolff, dfaure
Cc: #frameworks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20180111/a9be997b/attachment-0001.html>
More information about the Kde-frameworks-devel
mailing list