From d5eff1fa4ee33f16898a3d44655c5e9a89ef45db Mon Sep 17 00:00:00 2001 From: cxl Date: Wed, 26 Jun 2019 11:02:22 +0000 Subject: [PATCH] .benchamarks git-svn-id: svn://ultimatepp.org/upp/trunk@13440 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- benchmarks/Index/Index.cpp | 92 +++++++++++++++++++++++++++++++++ benchmarks/Index/Index.upp | 9 ++++ benchmarks/Index2/Index.cpp | 96 ++++++++++++++++++++++++++++++++++ benchmarks/Index2/Index2.upp | 9 ++++ benchmarks/Index3/Index.cpp | 99 ++++++++++++++++++++++++++++++++++++ benchmarks/Index3/Index3.upp | 9 ++++ 6 files changed, 314 insertions(+) create mode 100644 benchmarks/Index/Index.cpp create mode 100644 benchmarks/Index/Index.upp create mode 100644 benchmarks/Index2/Index.cpp create mode 100644 benchmarks/Index2/Index2.upp create mode 100644 benchmarks/Index3/Index.cpp create mode 100644 benchmarks/Index3/Index3.upp diff --git a/benchmarks/Index/Index.cpp b/benchmarks/Index/Index.cpp new file mode 100644 index 000000000..14bac99e6 --- /dev/null +++ b/benchmarks/Index/Index.cpp @@ -0,0 +1,92 @@ +#include +#include + +using namespace Upp; + +CONSOLE_APP_MAIN +{ +#ifdef _DEBUG + const int v_num = 10000; +#else + const int v_num = 10; +#endif + + const int isize = 1000000; + + { + Vector > v; + v.SetCount(v_num); + { + RTIMING("FindAdd v_num outer"); + for (int j = 0; j < v_num; ++j) + for (int i = 0; i < isize; ++i) + v[j].FindAdd(i); + } + { + RTIMING("UnlinkKey v_num outer"); + for (int j = 0; j < v_num; ++j) + for (int i = 0; i < isize; ++i) + v[j].UnlinkKey(i); + } + RTIMING("Sweep v_num outer"); + const int jsize = v_num; + for (int j = 0; j < jsize; ++j) + v[j].Sweep(); + } + { + Vector > v; + v.SetCount(v_num); + { + RTIMING("FindAdd v_num inner"); + for (int i = 0; i < isize; ++i) + for (int j = 0; j < v_num; ++j) + v[j].FindAdd(i); + } + { + RTIMING("UnlinkKey v_num inner"); + for (int i = 0; i < isize; ++i) + for (int j = 0; j < v_num; ++j) + v[j].UnlinkKey(i); + } + RTIMING("Sweep v_num inner"); + const int jsize = v_num; + for (int j = 0; j < jsize; ++j) + v[j].Sweep(); + } + + { + std::set *v = new std::set[v_num]; + { + RTIMING("insert v_num outer"); + for (int j = 0; j < v_num; ++j) + for (int i = 0; i < isize; ++i) + v[j].insert(i); + } + + { + RTIMING("erase v_num outer"); + for (int j = 0; j < v_num; ++j) + for (int i = 0; i < isize; ++i) + v[j].erase(i); + } + delete[] v; + } + + { + std::set *v = new std::set[v_num]; + { + RTIMING("insert v_num inner"); + for (int i = 0; i < isize; ++i) + for (int j = 0; j < v_num; ++j) + v[j].insert(i); + } + + { + RTIMING("erase v_num inner"); + for (int i = 0; i < isize; ++i) + for (int j = 0; j < v_num; ++j) + v[j].erase(i); + } + delete[] v; + } +} diff --git a/benchmarks/Index/Index.upp b/benchmarks/Index/Index.upp new file mode 100644 index 000000000..b87f41358 --- /dev/null +++ b/benchmarks/Index/Index.upp @@ -0,0 +1,9 @@ +uses + Core; + +file + Index.cpp; + +mainconfig + "" = ""; + diff --git a/benchmarks/Index2/Index.cpp b/benchmarks/Index2/Index.cpp new file mode 100644 index 000000000..43db19604 --- /dev/null +++ b/benchmarks/Index2/Index.cpp @@ -0,0 +1,96 @@ +#include +#include + +using namespace Upp; + +CONSOLE_APP_MAIN +{ +#ifdef _DEBUG + const int v_num = 10000; +#else + const int v_num = 100000; +#endif + + const int isize = 100; + + Vector data; + for(int i = 0; i < isize; i++) + data.Add(Random()); + + { + Vector > v; + v.SetCount(v_num); + { + RTIMING("FindAdd v_num outer"); + for (int j = 0; j < v_num; ++j) + for (int i = 0; i < isize; ++i) + v[j].FindAdd(data[i]); + } + { + RTIMING("UnlinkKey v_num outer"); + for (int j = 0; j < v_num; ++j) + for (int i = 0; i < isize; ++i) + v[j].UnlinkKey(data[i]); + } + RTIMING("Sweep v_num outer"); + const int jsize = v_num; + for (int j = 0; j < jsize; ++j) + v[j].Sweep(); + } + { + Vector > v; + v.SetCount(v_num); + { + RTIMING("FindAdd v_num inner"); + for (int i = 0; i < isize; ++i) + for (int j = 0; j < v_num; ++j) + v[j].FindAdd(data[i]); + } + { + RTIMING("UnlinkKey v_num inner"); + for (int i = 0; i < isize; ++i) + for (int j = 0; j < v_num; ++j) + v[j].UnlinkKey(data[i]); + } + RTIMING("Sweep v_num inner"); + const int jsize = v_num; + for (int j = 0; j < jsize; ++j) + v[j].Sweep(); + } + + { + std::set *v = new std::set[v_num]; + { + RTIMING("insert v_num outer"); + for (int j = 0; j < v_num; ++j) + for (int i = 0; i < isize; ++i) + v[j].insert(data[i]); + } + + { + RTIMING("erase v_num outer"); + for (int j = 0; j < v_num; ++j) + for (int i = 0; i < isize; ++i) + v[j].erase(data[i]); + } + delete[] v; + } + + { + std::set *v = new std::set[v_num]; + { + RTIMING("insert v_num inner"); + for (int i = 0; i < isize; ++i) + for (int j = 0; j < v_num; ++j) + v[j].insert(i); + } + + { + RTIMING("erase v_num inner"); + for (int i = 0; i < isize; ++i) + for (int j = 0; j < v_num; ++j) + v[j].erase(i); + } + delete[] v; + } +} diff --git a/benchmarks/Index2/Index2.upp b/benchmarks/Index2/Index2.upp new file mode 100644 index 000000000..b87f41358 --- /dev/null +++ b/benchmarks/Index2/Index2.upp @@ -0,0 +1,9 @@ +uses + Core; + +file + Index.cpp; + +mainconfig + "" = ""; + diff --git a/benchmarks/Index3/Index.cpp b/benchmarks/Index3/Index.cpp new file mode 100644 index 000000000..ab6097a74 --- /dev/null +++ b/benchmarks/Index3/Index.cpp @@ -0,0 +1,99 @@ +#include +#include + +using namespace Upp; + +CONSOLE_APP_MAIN +{ +#ifdef _DEBUG + const int v_num = 10000; +#else + const int v_num = 100000; +#endif + + const int isize = 100; + + Vector data; + for(int i = 0; i < isize; i++) + data.Add(AsString(Random())); + + { + Vector > v; + v.SetCount(v_num); + { + RTIMING("FindAdd v_num outer"); + for (int j = 0; j < v_num; ++j) + for (int i = 0; i < isize; ++i) + v[j].FindAdd(data[i]); + } + return; + { + RTIMING("UnlinkKey v_num outer"); + for (int j = 0; j < v_num; ++j) + for (int i = 0; i < isize; ++i) + v[j].UnlinkKey(data[i]); + } + RTIMING("Sweep v_num outer"); + const int jsize = v_num; + for (int j = 0; j < jsize; ++j) + v[j].Sweep(); + } + { + Vector > v; + v.SetCount(v_num); + { + RTIMING("FindAdd v_num inner"); + for (int i = 0; i < isize; ++i) + for (int j = 0; j < v_num; ++j) { + RTIMING("2"); + v[j].FindAdd(data[i]); + } + } + { + RTIMING("UnlinkKey v_num inner"); + for (int i = 0; i < isize; ++i) + for (int j = 0; j < v_num; ++j) + v[j].UnlinkKey(data[i]); + } + RTIMING("Sweep v_num inner"); + const int jsize = v_num; + for (int j = 0; j < jsize; ++j) + v[j].Sweep(); + } + + { + std::set *v = new std::set[v_num]; + { + RTIMING("insert v_num outer"); + for (int j = 0; j < v_num; ++j) + for (int i = 0; i < isize; ++i) + v[j].insert(data[i]); + } + + { + RTIMING("erase v_num outer"); + for (int j = 0; j < v_num; ++j) + for (int i = 0; i < isize; ++i) + v[j].erase(data[i]); + } + delete[] v; + } + + { + std::set *v = new std::set[v_num]; + { + RTIMING("insert v_num inner"); + for (int i = 0; i < isize; ++i) + for (int j = 0; j < v_num; ++j) + v[j].insert(data[i]); + } + + { + RTIMING("erase v_num inner"); + for (int i = 0; i < isize; ++i) + for (int j = 0; j < v_num; ++j) + v[j].erase(data[i]); + } + delete[] v; + } +} diff --git a/benchmarks/Index3/Index3.upp b/benchmarks/Index3/Index3.upp new file mode 100644 index 000000000..b87f41358 --- /dev/null +++ b/benchmarks/Index3/Index3.upp @@ -0,0 +1,9 @@ +uses + Core; + +file + Index.cpp; + +mainconfig + "" = ""; +