diff --git a/benchmarks/stdlist/init b/benchmarks/stdlist/init new file mode 100644 index 000000000..0d09c8f3b --- /dev/null +++ b/benchmarks/stdlist/init @@ -0,0 +1,4 @@ +#ifndef _stdlist_icpp_init_stub +#define _stdlist_icpp_init_stub +#include "Core/init" +#endif diff --git a/benchmarks/stdlist/main.cpp b/benchmarks/stdlist/main.cpp new file mode 100644 index 000000000..6beb8c8b6 --- /dev/null +++ b/benchmarks/stdlist/main.cpp @@ -0,0 +1,67 @@ +#include + +#include +#include + +using namespace Upp; + +CONSOLE_APP_MAIN +{ + const int N = 20000; + + std::list l; + std::vector v; + Vector u; + + for(int j = 0; j < 1000; j++) { + { + l.clear(); + RTIMING("list::push_back"); + for(int i = 0; i < N; i++) + l.push_back(i); + } + { + v.clear(); + RTIMING("vector::push_back"); + for(int i = 0; i < N; i++) + v.push_back(i); + } + { + u.clear(); + RTIMING("Vector::Add"); + for(int i = 0; i < N; i++) + u.Add(i); + } + } + + for(int j = 0; j < 1000; j++) { + { + int sum = 0; + { + RTIMING("list iterate"); + for(const auto& i : l) + sum += i; + } + RDUMP(sum); + } + { + int sum = 0; + { + RTIMING("vector iterate"); + for(const auto& i : v) + sum += i; + } + RDUMP(sum); + } + { + int sum = 0; + { + RTIMING("Vector iterate"); + for(const auto& i : u) + sum += i; + } + RDUMP(sum); + } + } + +} diff --git a/benchmarks/stdlist/stdlist.upp b/benchmarks/stdlist/stdlist.upp new file mode 100644 index 000000000..2aa176a81 --- /dev/null +++ b/benchmarks/stdlist/stdlist.upp @@ -0,0 +1,9 @@ +uses + Core; + +file + main.cpp optimize_speed; + +mainconfig + "" = ""; +