summaryrefslogtreecommitdiffstats
path: root/tests/dummyresourcewritebenchmark.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/dummyresourcewritebenchmark.cpp')
-rw-r--r--tests/dummyresourcewritebenchmark.cpp57
1 files changed, 24 insertions, 33 deletions
diff --git a/tests/dummyresourcewritebenchmark.cpp b/tests/dummyresourcewritebenchmark.cpp
index 9815f96..28ca408 100644
--- a/tests/dummyresourcewritebenchmark.cpp
+++ b/tests/dummyresourcewritebenchmark.cpp
@@ -77,7 +77,6 @@ class DummyResourceWriteBenchmark : public QObject
77 { 77 {
78 DummyResource::removeFromDisk("sink.dummy.instance1"); 78 DummyResource::removeFromDisk("sink.dummy.instance1");
79 79
80
81 QTime time; 80 QTime time;
82 time.start(); 81 time.start();
83 DummyResource resource(Sink::ResourceContext{"sink.dummy.instance1", "sink.dummy", Sink::AdaptorFactoryRegistry::instance().getFactories("sink.dummy")}); 82 DummyResource resource(Sink::ResourceContext{"sink.dummy.instance1", "sink.dummy", Sink::AdaptorFactoryRegistry::instance().getFactories("sink.dummy")});
@@ -128,14 +127,20 @@ class DummyResourceWriteBenchmark : public QObject
128 // so it doesn't look like that memory is being duplicated. 127 // so it doesn't look like that memory is being duplicated.
129 QVERIFY(rssGrowthPerEntity < 2500); 128 QVERIFY(rssGrowthPerEntity < 2500);
130 129
131 // HAWD::Dataset dataset("dummy_write_in_process", m_hawdState); 130 HAWD::Dataset dataset("dummy_write_in_process", m_hawdState);
132 // HAWD::Dataset::Row row = dataset.row(); 131 HAWD::Dataset::Row row = dataset.row();
133 // 132 row.setValue("rows", num);
134 // row.setValue("rows", num); 133 row.setValue("append", (qreal)num/appendTime);
135 // row.setValue("append", (qreal)num/appendTime); 134 row.setValue("total", (qreal)num/allProcessedTime);
136 // row.setValue("total", (qreal)num/allProcessedTime); 135 row.setValue("onDisk", onDisk / 1024);
137 // dataset.insertRow(row); 136 row.setValue("bufferSize", bufferSizeTotal / 1024);
138 // HAWD::Formatter::print(dataset); 137 row.setValue("writeAmplification", writeAmplification);
138 row.setValue("rss", QVariant::fromValue(finalRss / 1024));
139 row.setValue("peakRss", QVariant::fromValue(peakRss / 1024));
140 row.setValue("rssGrowthPerEntity", QVariant::fromValue(rssGrowthPerEntity));
141 row.setValue("rssWithoutDb", rssWithoutDb / 1024);
142 dataset.insertRow(row);
143 HAWD::Formatter::print(dataset);
139 144
140 // Print memory layout, RSS is what is in memory 145 // Print memory layout, RSS is what is in memory
141 // std::system("exec pmap -x \"$PPID\""); 146 // std::system("exec pmap -x \"$PPID\"");
@@ -154,42 +159,28 @@ private slots:
154 { 159 {
155 } 160 }
156 161
157 void test1k() 162 void runBenchmarks()
158 { 163 {
159 writeInProcess(1000); 164 writeInProcess(1000);
160 }
161
162 void test2k()
163 {
164 writeInProcess(2000); 165 writeInProcess(2000);
165 }
166
167 void test5k()
168 {
169 writeInProcess(5000); 166 writeInProcess(5000);
167 writeInProcess(20000);
170 } 168 }
171 169
172 // void test20k()
173 // {
174 // writeInProcess(20000);
175 // }
176 //
177 void ensureUsedMemoryRemainsStable() 170 void ensureUsedMemoryRemainsStable()
178 { 171 {
179 auto rssStandardDeviation = sqrt(variance(mRssGrowthPerEntity)); 172 auto rssStandardDeviation = sqrt(variance(mRssGrowthPerEntity));
180 auto timeStandardDeviation = sqrt(variance(mTimePerEntity)); 173 auto timeStandardDeviation = sqrt(variance(mTimePerEntity));
181 std::cout << "Rss standard deviation " << rssStandardDeviation << std::endl; 174 HAWD::Dataset dataset("dummy_write_in_process_summary", m_hawdState);
182 std::cout << "Rss max difference [byte]" << maxDifference(mRssGrowthPerEntity) << std::endl; 175 HAWD::Dataset::Row row = dataset.row();
183 std::cout << "Time standard deviation " << timeStandardDeviation << std::endl; 176 row.setValue("rssStandardDeviation", rssStandardDeviation);
184 std::cout << "Time max difference [ms]" << maxDifference(mTimePerEntity) << std::endl; 177 row.setValue("rssMaxDifference", maxDifference(mRssGrowthPerEntity));
185 QVERIFY(rssStandardDeviation < 1000); 178 row.setValue("timeStandardDeviation", timeStandardDeviation);
186 QVERIFY(timeStandardDeviation < 1); 179 row.setValue("timeMaxDifference", maxDifference(mTimePerEntity));
180 dataset.insertRow(row);
181 HAWD::Formatter::print(dataset);
187 } 182 }
188 183
189 void getFreePages()
190 {
191 std::system(QString("mdb_stat %1/%2 -ff").arg(Sink::storageLocation()).arg("sink.dummy.instance1").toLatin1().constData());
192 }
193 184
194 // This allows to run individual parts without doing a cleanup, but still cleaning up normally 185 // This allows to run individual parts without doing a cleanup, but still cleaning up normally
195 void testCleanupForCompleteTest() 186 void testCleanupForCompleteTest()