aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/messagebus/rain_check/test/perftest
diff options
context:
space:
mode:
authornga <nga@yandex-team.ru>2022-02-10 16:48:09 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:48:09 +0300
commitc2a1af049e9deca890e9923abe64fe6c59060348 (patch)
treeb222e5ac2e2e98872661c51ccceee5da0d291e13 /library/cpp/messagebus/rain_check/test/perftest
parent1f553f46fb4f3c5eec631352cdd900a0709016af (diff)
downloadydb-c2a1af049e9deca890e9923abe64fe6c59060348.tar.gz
Restoring authorship annotation for <nga@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/messagebus/rain_check/test/perftest')
-rw-r--r--library/cpp/messagebus/rain_check/test/perftest/perftest.cpp254
-rw-r--r--library/cpp/messagebus/rain_check/test/perftest/ya.make22
2 files changed, 138 insertions, 138 deletions
diff --git a/library/cpp/messagebus/rain_check/test/perftest/perftest.cpp b/library/cpp/messagebus/rain_check/test/perftest/perftest.cpp
index d0c6451f47..22edbd8c6b 100644
--- a/library/cpp/messagebus/rain_check/test/perftest/perftest.cpp
+++ b/library/cpp/messagebus/rain_check/test/perftest/perftest.cpp
@@ -1,154 +1,154 @@
#include <library/cpp/messagebus/rain_check/test/helper/misc.h>
-
+
#include <library/cpp/messagebus/rain_check/core/rain_check.h>
-
+
#include <util/datetime/base.h>
#include <array>
-
-using namespace NRainCheck;
-
-static const unsigned SUBTASKS = 2;
-
-struct TRainCheckPerftestEnv: public TSimpleEnvTemplate<TRainCheckPerftestEnv> {
- unsigned SubtasksPerTask;
-
- TRainCheckPerftestEnv()
- : TSimpleEnvTemplate<TRainCheckPerftestEnv>(4)
- , SubtasksPerTask(1000)
+
+using namespace NRainCheck;
+
+static const unsigned SUBTASKS = 2;
+
+struct TRainCheckPerftestEnv: public TSimpleEnvTemplate<TRainCheckPerftestEnv> {
+ unsigned SubtasksPerTask;
+
+ TRainCheckPerftestEnv()
+ : TSimpleEnvTemplate<TRainCheckPerftestEnv>(4)
+ , SubtasksPerTask(1000)
{
}
-};
-
-struct TCoroOuter: public ICoroTask {
- TRainCheckPerftestEnv* const Env;
-
+};
+
+struct TCoroOuter: public ICoroTask {
+ TRainCheckPerftestEnv* const Env;
+
TCoroOuter(TRainCheckPerftestEnv* env)
: Env(env)
{
}
-
+
void Run() override {
- for (;;) {
- TInstant start = TInstant::Now();
-
- unsigned count = 0;
-
- unsigned current = 1000;
-
- do {
- for (unsigned i = 0; i < current; ++i) {
+ for (;;) {
+ TInstant start = TInstant::Now();
+
+ unsigned count = 0;
+
+ unsigned current = 1000;
+
+ do {
+ for (unsigned i = 0; i < current; ++i) {
std::array<TSubtaskCompletion, SUBTASKS> completion;
-
- for (unsigned j = 0; j < SUBTASKS; ++j) {
- //SpawnSubtask<TNopSimpleTask>(Env, &completion[j]);
- //SpawnSubtask<TSpawnNopTasksCoroTask>(Env, &completion[j], SUBTASKS);
- SpawnSubtask<TSpawnNopTasksSimpleTask>(Env, &completion[j], SUBTASKS);
- }
-
- WaitForSubtasks();
- }
-
- count += current;
- current *= 2;
- } while (TInstant::Now() - start < TDuration::Seconds(1));
-
- TDuration d = TInstant::Now() - start;
- unsigned dns = d.NanoSeconds() / count;
- Cerr << dns << "ns per spawn/join\n";
- }
- }
-};
-
-struct TSimpleOuter: public ISimpleTask {
- TRainCheckPerftestEnv* const Env;
-
+
+ for (unsigned j = 0; j < SUBTASKS; ++j) {
+ //SpawnSubtask<TNopSimpleTask>(Env, &completion[j]);
+ //SpawnSubtask<TSpawnNopTasksCoroTask>(Env, &completion[j], SUBTASKS);
+ SpawnSubtask<TSpawnNopTasksSimpleTask>(Env, &completion[j], SUBTASKS);
+ }
+
+ WaitForSubtasks();
+ }
+
+ count += current;
+ current *= 2;
+ } while (TInstant::Now() - start < TDuration::Seconds(1));
+
+ TDuration d = TInstant::Now() - start;
+ unsigned dns = d.NanoSeconds() / count;
+ Cerr << dns << "ns per spawn/join\n";
+ }
+ }
+};
+
+struct TSimpleOuter: public ISimpleTask {
+ TRainCheckPerftestEnv* const Env;
+
TSimpleOuter(TRainCheckPerftestEnv* env, const void*)
: Env(env)
{
}
-
- TInstant StartInstant;
- unsigned Count;
- unsigned Current;
- unsigned I;
-
+
+ TInstant StartInstant;
+ unsigned Count;
+ unsigned Current;
+ unsigned I;
+
TContinueFunc Start() override {
- StartInstant = TInstant::Now();
- Count = 0;
- Current = 1000;
- I = 0;
-
- return &TSimpleOuter::Spawn;
- }
-
+ StartInstant = TInstant::Now();
+ Count = 0;
+ Current = 1000;
+ I = 0;
+
+ return &TSimpleOuter::Spawn;
+ }
+
std::array<TSubtaskCompletion, SUBTASKS> Completion;
-
- TContinueFunc Spawn() {
- for (unsigned j = 0; j < SUBTASKS; ++j) {
- //SpawnSubtask<TNopSimpleTask>(Env, &Completion[j]);
- //SpawnSubtask<TSpawnNopTasksCoroTask>(Env, &Completion[j], SUBTASKS);
- SpawnSubtask<TSpawnNopTasksSimpleTask>(Env, &Completion[j], SUBTASKS);
- }
-
- return &TSimpleOuter::Join;
- }
-
- TContinueFunc Join() {
- I += 1;
- if (I != Current) {
- return &TSimpleOuter::Spawn;
- }
-
- I = 0;
- Count += Current;
- Current *= 2;
-
- TDuration d = TInstant::Now() - StartInstant;
- if (d < TDuration::Seconds(1)) {
- return &TSimpleOuter::Spawn;
- }
-
- unsigned dns = d.NanoSeconds() / Count;
- Cerr << dns << "ns per spawn/join\n";
-
- return &TSimpleOuter::Start;
- }
-};
-
-struct TReproduceCrashTask: public ISimpleTask {
- TRainCheckPerftestEnv* const Env;
-
+
+ TContinueFunc Spawn() {
+ for (unsigned j = 0; j < SUBTASKS; ++j) {
+ //SpawnSubtask<TNopSimpleTask>(Env, &Completion[j]);
+ //SpawnSubtask<TSpawnNopTasksCoroTask>(Env, &Completion[j], SUBTASKS);
+ SpawnSubtask<TSpawnNopTasksSimpleTask>(Env, &Completion[j], SUBTASKS);
+ }
+
+ return &TSimpleOuter::Join;
+ }
+
+ TContinueFunc Join() {
+ I += 1;
+ if (I != Current) {
+ return &TSimpleOuter::Spawn;
+ }
+
+ I = 0;
+ Count += Current;
+ Current *= 2;
+
+ TDuration d = TInstant::Now() - StartInstant;
+ if (d < TDuration::Seconds(1)) {
+ return &TSimpleOuter::Spawn;
+ }
+
+ unsigned dns = d.NanoSeconds() / Count;
+ Cerr << dns << "ns per spawn/join\n";
+
+ return &TSimpleOuter::Start;
+ }
+};
+
+struct TReproduceCrashTask: public ISimpleTask {
+ TRainCheckPerftestEnv* const Env;
+
TReproduceCrashTask(TRainCheckPerftestEnv* env)
: Env(env)
{
}
-
+
std::array<TSubtaskCompletion, SUBTASKS> Completion;
-
+
TContinueFunc Start() override {
- for (unsigned j = 0; j < 2; ++j) {
- //SpawnSubtask<TNopSimpleTask>(Env, &Completion[j]);
- SpawnSubtask<TSpawnNopTasksSimpleTask>(Env, &Completion[j], SUBTASKS);
- }
-
- return &TReproduceCrashTask::Start;
- }
-};
-
-int main(int argc, char** argv) {
+ for (unsigned j = 0; j < 2; ++j) {
+ //SpawnSubtask<TNopSimpleTask>(Env, &Completion[j]);
+ SpawnSubtask<TSpawnNopTasksSimpleTask>(Env, &Completion[j], SUBTASKS);
+ }
+
+ return &TReproduceCrashTask::Start;
+ }
+};
+
+int main(int argc, char** argv) {
Y_UNUSED(argc);
Y_UNUSED(argv);
-
- TRainCheckPerftestEnv env;
-
- env.SpawnTask<TSimpleOuter>("");
- //env.SpawnTask<TCoroOuter>();
- //env.SpawnTask<TReproduceCrashTask>();
-
- for (;;) {
- Sleep(TDuration::Hours(1));
- }
-
- return 0;
-}
+
+ TRainCheckPerftestEnv env;
+
+ env.SpawnTask<TSimpleOuter>("");
+ //env.SpawnTask<TCoroOuter>();
+ //env.SpawnTask<TReproduceCrashTask>();
+
+ for (;;) {
+ Sleep(TDuration::Hours(1));
+ }
+
+ return 0;
+}
diff --git a/library/cpp/messagebus/rain_check/test/perftest/ya.make b/library/cpp/messagebus/rain_check/test/perftest/ya.make
index f80ddf2c05..7330a71700 100644
--- a/library/cpp/messagebus/rain_check/test/perftest/ya.make
+++ b/library/cpp/messagebus/rain_check/test/perftest/ya.make
@@ -1,14 +1,14 @@
-PROGRAM(messagebus_rain_check_perftest)
-
+PROGRAM(messagebus_rain_check_perftest)
+
OWNER(g:messagebus)
-
-PEERDIR(
+
+PEERDIR(
library/cpp/messagebus/rain_check/core
library/cpp/messagebus/rain_check/test/helper
-)
-
-SRCS(
- perftest.cpp
-)
-
-END()
+)
+
+SRCS(
+ perftest.cpp
+)
+
+END()