From 54cc76eaed161163b6ffdab1362ef07bed0bbd3b Mon Sep 17 00:00:00 2001 From: cxl Date: Tue, 15 Nov 2016 10:21:27 +0000 Subject: [PATCH] .benchmarks git-svn-id: svn://ultimatepp.org/upp/trunk@10439 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- benchmarks/CoFindAll/CoFindAll.cpp | 23 ++++++++++++ benchmarks/CoFindAll/CoFindAll.upp | 9 +++++ benchmarks/benchEvent/benchEvent.cpp | 52 ++++++++++++++++++++++++++++ benchmarks/benchEvent/benchEvent.upp | 9 +++++ benchmarks/benchEvent/init | 4 +++ 5 files changed, 97 insertions(+) create mode 100644 benchmarks/CoFindAll/CoFindAll.cpp create mode 100644 benchmarks/CoFindAll/CoFindAll.upp create mode 100644 benchmarks/benchEvent/benchEvent.cpp create mode 100644 benchmarks/benchEvent/benchEvent.upp create mode 100644 benchmarks/benchEvent/init diff --git a/benchmarks/CoFindAll/CoFindAll.cpp b/benchmarks/CoFindAll/CoFindAll.cpp new file mode 100644 index 000000000..8686ab3f9 --- /dev/null +++ b/benchmarks/CoFindAll/CoFindAll.cpp @@ -0,0 +1,23 @@ +#include + +using namespace Upp; + +CONSOLE_APP_MAIN +{ + StdLogSetup(LOG_COUT|LOG_FILE); + + Vector data; + for(int i = 0; i < 100000000; i++) + data.Add(Random()); + + { + RTIMING("FindAll"); + RDUMP(FindAll(data, [=](int c) { return c % 177777 == 0; }).GetCount()); + } + { + RTIMING("CoFindAll"); + RDUMP(CoFindAll(data, [=](int c) { return c % 177777 == 0; }).GetCount()); + } + + LOG("===================== OK"); +} diff --git a/benchmarks/CoFindAll/CoFindAll.upp b/benchmarks/CoFindAll/CoFindAll.upp new file mode 100644 index 000000000..f07e9f20e --- /dev/null +++ b/benchmarks/CoFindAll/CoFindAll.upp @@ -0,0 +1,9 @@ +uses + Core; + +file + CoFindAll.cpp; + +mainconfig + "" = "MT"; + diff --git a/benchmarks/benchEvent/benchEvent.cpp b/benchmarks/benchEvent/benchEvent.cpp new file mode 100644 index 000000000..f0a7f0b28 --- /dev/null +++ b/benchmarks/benchEvent/benchEvent.cpp @@ -0,0 +1,52 @@ +#include + +using namespace Upp; + +struct Test { + int sum; + + Vector> cb; + + void Method1() { + sum++; + } + + void Method2(int d) { + sum += d; + } + + typedef Test CLASSNAME; + + Test() { + const int N = 1000000; + for(int j = 0; j < 50; j++) { + cb.Clear(); + for(int i = 0; i < N; i++) { + RTIMING("Adding Method1"); + cb.Add([=] { Method1(); }); + } + sum = 0; + for(int i = 0; i < cb.GetCount(); i++) { + RTIMING("Calling Method1"); + cb[i](); + } + RDUMP(sum); + cb.Clear(); + for(int i = 0; i < N; i++) { + RTIMING("Adding Method2"); + cb.Add([=] { Method2(i); }); + } + sum = 0; + for(int i = 0; i < cb.GetCount(); i++) { + RTIMING("Calling Method2"); + cb[i](); + } + RDUMP(sum); + } + } +}; + +CONSOLE_APP_MAIN +{ + Test(); +} diff --git a/benchmarks/benchEvent/benchEvent.upp b/benchmarks/benchEvent/benchEvent.upp new file mode 100644 index 000000000..14e9bb4cf --- /dev/null +++ b/benchmarks/benchEvent/benchEvent.upp @@ -0,0 +1,9 @@ +uses + Core; + +file + benchEvent.cpp; + +mainconfig + "" = "MT"; + diff --git a/benchmarks/benchEvent/init b/benchmarks/benchEvent/init new file mode 100644 index 000000000..32d3ba0e4 --- /dev/null +++ b/benchmarks/benchEvent/init @@ -0,0 +1,4 @@ +#ifndef _benchEvent_icpp_init_stub +#define _benchEvent_icpp_init_stub +#include "Core/init" +#endif