summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/util/bufferwriter/bm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib/src/tests/util/bufferwriter/bm.cpp')
-rw-r--r--searchlib/src/tests/util/bufferwriter/bm.cpp93
1 files changed, 0 insertions, 93 deletions
diff --git a/searchlib/src/tests/util/bufferwriter/bm.cpp b/searchlib/src/tests/util/bufferwriter/bm.cpp
deleted file mode 100644
index ac3cc3a09b1..00000000000
--- a/searchlib/src/tests/util/bufferwriter/bm.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#include "work.h"
-#include <vespa/searchlib/util/drainingbufferwriter.h>
-#include <vespa/vespalib/testkit/testapp.h>
-#include <vespa/fastos/timestamp.h>
-#include <iostream>
-
-#include <vespa/log/log.h>
-LOG_SETUP("bufferwriter_bm");
-
-using search::DrainingBufferWriter;
-
-constexpr size_t million = 1000000;
-
-enum class WorkFuncDispatch
-{
- DIRECT,
- LAMBDA,
- FUNCTOR,
- FUNCTOR2
-};
-
-
-template <typename T>
-void
-callWork(size_t size, WorkFuncDispatch dispatch)
-{
- std::vector<T> foo;
- DrainingBufferWriter writer;
- foo.resize(size);
- std::cout << "will write " << size << " elements of size " << sizeof(T) <<
- std::endl;
- fastos::StopWatch stopWatch;
- switch (dispatch) {
- case WorkFuncDispatch::DIRECT:
- work(foo, writer);
- break;
- case WorkFuncDispatch::LAMBDA:
- workLambda(foo, writer);
- break;
- case WorkFuncDispatch::FUNCTOR:
- workFunctor(foo, writer);
- break;
- case WorkFuncDispatch::FUNCTOR2:
- workFunctor2(foo, writer);
- break;
- default:
- LOG_ABORT("should not be reached");
- }
- double delta = stopWatch.stop().elapsed();
- double writeSpeed = writer.getBytesWritten() / delta;
- EXPECT_GREATER(writeSpeed, 1000);
- std::cout << "written is " << writer.getBytesWritten() << std::endl;
- std::cout << "time used is " << (delta * 1000.0) << " ms" << std::endl;
- std::cout << "write speed is " << writeSpeed << std::endl;
-}
-
-
-void
-callWorks(WorkFuncDispatch dispatch)
-{
- callWork<char>(million * 1000, dispatch);
- callWork<short>(million * 500, dispatch);
- callWork<int>(million * 250, dispatch);
- callWork<long>(million * 125, dispatch);
-}
-
-TEST("simple bufferwriter speed test")
-{
- callWorks(WorkFuncDispatch::DIRECT);
-}
-
-TEST("lambda func bufferwriter speed test")
-{
- callWorks(WorkFuncDispatch::LAMBDA);
-}
-
-TEST("functor bufferwriter speed test")
-{
- callWorks(WorkFuncDispatch::FUNCTOR);
-}
-
-TEST("functor2 bufferwriter speed test")
-{
- callWorks(WorkFuncDispatch::FUNCTOR2);
-}
-
-
-TEST_MAIN()
-{
- TEST_RUN_ALL();
-}