diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-10-17 12:40:03 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-10-17 12:40:37 +0200 |
commit | dcfc70808ab9680a8caed6ff0fb98f978fbbef97 (patch) | |
tree | a09c75b0686dcd4a590386f195f24bb5a0893aba /tests/dummyresourcewritebenchmark.cpp | |
parent | 422c12d85d3eca55eca6f23c140910150a5fd166 (diff) | |
download | sink-dcfc70808ab9680a8caed6ff0fb98f978fbbef97.tar.gz sink-dcfc70808ab9680a8caed6ff0fb98f978fbbef97.zip |
Split up dummyresourcewritebenchmark into datasets that we want to
display.
Diffstat (limited to 'tests/dummyresourcewritebenchmark.cpp')
-rw-r--r-- | tests/dummyresourcewritebenchmark.cpp | 68 |
1 files changed, 44 insertions, 24 deletions
diff --git a/tests/dummyresourcewritebenchmark.cpp b/tests/dummyresourcewritebenchmark.cpp index 28ca408..87bb57a 100644 --- a/tests/dummyresourcewritebenchmark.cpp +++ b/tests/dummyresourcewritebenchmark.cpp | |||
@@ -1,6 +1,7 @@ | |||
1 | #include <QtTest> | 1 | #include <QtTest> |
2 | 2 | ||
3 | #include <QString> | 3 | #include <QString> |
4 | #include <QDateTime> | ||
4 | 5 | ||
5 | #include <iostream> | 6 | #include <iostream> |
6 | 7 | ||
@@ -72,8 +73,9 @@ class DummyResourceWriteBenchmark : public QObject | |||
72 | 73 | ||
73 | QList<double> mRssGrowthPerEntity; | 74 | QList<double> mRssGrowthPerEntity; |
74 | QList<double> mTimePerEntity; | 75 | QList<double> mTimePerEntity; |
76 | QDateTime mTimeStamp{QDateTime::currentDateTimeUtc()}; | ||
75 | 77 | ||
76 | void writeInProcess(int num) | 78 | void writeInProcess(int num, const QDateTime ×tamp) |
77 | { | 79 | { |
78 | DummyResource::removeFromDisk("sink.dummy.instance1"); | 80 | DummyResource::removeFromDisk("sink.dummy.instance1"); |
79 | 81 | ||
@@ -122,25 +124,42 @@ class DummyResourceWriteBenchmark : public QObject | |||
122 | mTimePerEntity << static_cast<double>(allProcessedTime) / static_cast<double>(num); | 124 | mTimePerEntity << static_cast<double>(allProcessedTime) / static_cast<double>(num); |
123 | mRssGrowthPerEntity << rssGrowthPerEntity; | 125 | mRssGrowthPerEntity << rssGrowthPerEntity; |
124 | 126 | ||
125 | QVERIFY(percentageRssError < 10); | 127 | { |
126 | // TODO This is much more than it should it seems, although adding the attachment results in pretty exactly a 1k increase, | 128 | HAWD::Dataset dataset("dummy_write_perf", m_hawdState); |
127 | // so it doesn't look like that memory is being duplicated. | 129 | HAWD::Dataset::Row row = dataset.row(); |
128 | QVERIFY(rssGrowthPerEntity < 2500); | 130 | row.setValue("rows", num); |
131 | row.setValue("append", (qreal)num/appendTime); | ||
132 | row.setValue("total", (qreal)num/allProcessedTime); | ||
133 | row.setTimestamp(timestamp); | ||
134 | dataset.insertRow(row); | ||
135 | HAWD::Formatter::print(dataset); | ||
136 | } | ||
129 | 137 | ||
130 | HAWD::Dataset dataset("dummy_write_in_process", m_hawdState); | 138 | { |
131 | HAWD::Dataset::Row row = dataset.row(); | 139 | HAWD::Dataset dataset("dummy_write_memory", m_hawdState); |
132 | row.setValue("rows", num); | 140 | HAWD::Dataset::Row row = dataset.row(); |
133 | row.setValue("append", (qreal)num/appendTime); | 141 | row.setValue("rows", num); |
134 | row.setValue("total", (qreal)num/allProcessedTime); | 142 | row.setValue("rss", QVariant::fromValue(finalRss / 1024)); |
135 | row.setValue("onDisk", onDisk / 1024); | 143 | row.setValue("peakRss", QVariant::fromValue(peakRss / 1024)); |
136 | row.setValue("bufferSize", bufferSizeTotal / 1024); | 144 | row.setValue("percentagePeakRssError", percentageRssError); |
137 | row.setValue("writeAmplification", writeAmplification); | 145 | row.setValue("rssGrowthPerEntity", QVariant::fromValue(rssGrowthPerEntity)); |
138 | row.setValue("rss", QVariant::fromValue(finalRss / 1024)); | 146 | row.setValue("rssWithoutDb", rssWithoutDb / 1024); |
139 | row.setValue("peakRss", QVariant::fromValue(peakRss / 1024)); | 147 | row.setTimestamp(timestamp); |
140 | row.setValue("rssGrowthPerEntity", QVariant::fromValue(rssGrowthPerEntity)); | 148 | dataset.insertRow(row); |
141 | row.setValue("rssWithoutDb", rssWithoutDb / 1024); | 149 | HAWD::Formatter::print(dataset); |
142 | dataset.insertRow(row); | 150 | } |
143 | HAWD::Formatter::print(dataset); | 151 | |
152 | { | ||
153 | HAWD::Dataset dataset("dummy_write_disk", m_hawdState); | ||
154 | HAWD::Dataset::Row row = dataset.row(); | ||
155 | row.setValue("rows", num); | ||
156 | row.setValue("onDisk", onDisk / 1024); | ||
157 | row.setValue("bufferSize", bufferSizeTotal / 1024); | ||
158 | row.setValue("writeAmplification", writeAmplification); | ||
159 | row.setTimestamp(timestamp); | ||
160 | dataset.insertRow(row); | ||
161 | HAWD::Formatter::print(dataset); | ||
162 | } | ||
144 | 163 | ||
145 | // Print memory layout, RSS is what is in memory | 164 | // Print memory layout, RSS is what is in memory |
146 | // std::system("exec pmap -x \"$PPID\""); | 165 | // std::system("exec pmap -x \"$PPID\""); |
@@ -161,22 +180,23 @@ private slots: | |||
161 | 180 | ||
162 | void runBenchmarks() | 181 | void runBenchmarks() |
163 | { | 182 | { |
164 | writeInProcess(1000); | 183 | writeInProcess(1000, mTimeStamp); |
165 | writeInProcess(2000); | 184 | writeInProcess(2000, mTimeStamp); |
166 | writeInProcess(5000); | 185 | writeInProcess(5000, mTimeStamp); |
167 | writeInProcess(20000); | 186 | writeInProcess(20000, mTimeStamp); |
168 | } | 187 | } |
169 | 188 | ||
170 | void ensureUsedMemoryRemainsStable() | 189 | void ensureUsedMemoryRemainsStable() |
171 | { | 190 | { |
172 | auto rssStandardDeviation = sqrt(variance(mRssGrowthPerEntity)); | 191 | auto rssStandardDeviation = sqrt(variance(mRssGrowthPerEntity)); |
173 | auto timeStandardDeviation = sqrt(variance(mTimePerEntity)); | 192 | auto timeStandardDeviation = sqrt(variance(mTimePerEntity)); |
174 | HAWD::Dataset dataset("dummy_write_in_process_summary", m_hawdState); | 193 | HAWD::Dataset dataset("dummy_write_summary", m_hawdState); |
175 | HAWD::Dataset::Row row = dataset.row(); | 194 | HAWD::Dataset::Row row = dataset.row(); |
176 | row.setValue("rssStandardDeviation", rssStandardDeviation); | 195 | row.setValue("rssStandardDeviation", rssStandardDeviation); |
177 | row.setValue("rssMaxDifference", maxDifference(mRssGrowthPerEntity)); | 196 | row.setValue("rssMaxDifference", maxDifference(mRssGrowthPerEntity)); |
178 | row.setValue("timeStandardDeviation", timeStandardDeviation); | 197 | row.setValue("timeStandardDeviation", timeStandardDeviation); |
179 | row.setValue("timeMaxDifference", maxDifference(mTimePerEntity)); | 198 | row.setValue("timeMaxDifference", maxDifference(mTimePerEntity)); |
199 | row.setTimestamp(mTimeStamp); | ||
180 | dataset.insertRow(row); | 200 | dataset.insertRow(row); |
181 | HAWD::Formatter::print(dataset); | 201 | HAWD::Formatter::print(dataset); |
182 | } | 202 | } |