diff --git a/benchmarks/Vector/Vector.cpp b/benchmarks/Vector/Vector.cpp new file mode 100644 index 000000000..d76784aa3 --- /dev/null +++ b/benchmarks/Vector/Vector.cpp @@ -0,0 +1,58 @@ +#include + +#include + +using namespace Upp; + +CONSOLE_APP_MAIN +{ + Buffer data(2000); + Buffer sdata(2000); + + for(int i = 0; i < 2000; i++) { + data[i] = AsString(i); + sdata[i] = data[i].ToStd(); + } + + for(int j = 0; j < 10000; j++) { + { + RTIMING("vector::push_back"); + std::vector v; + for(int i = 0; i < 2000; i++) + v.push_back(sdata[i]); + } + { + RTIMING("vector::push_back"); + std::vector v; + for(int i = 0; i < 2000; i++) + v.push_back(data[i]); + } + { + RTIMING("Vector::Add"); + Vector v; + for(int i = 0; i < 2000; i++) + v.Add(data[i]); + } + } + + for(int j = 0; j < 100; j++) { + { + RTIMING("vector::insert"); + std::vector v; + for(int i = 0; i < 2000; i++) + v.insert(v.begin(), sdata[i]); + } + { + RTIMING("vector::insert"); + std::vector v; + for(int i = 0; i < 2000; i++) + v.insert(v.begin(), sdata[i]); + } + { + RTIMING("Vector::Insert"); + Vector v; + for(int i = 0; i < 2000; i++) + v.Insert(0, data[i]); + } + } +} diff --git a/benchmarks/Vector/Vector.upp b/benchmarks/Vector/Vector.upp new file mode 100644 index 000000000..c64ea2336 --- /dev/null +++ b/benchmarks/Vector/Vector.upp @@ -0,0 +1,9 @@ +uses + Core; + +file + Vector.cpp optimize_speed; + +mainconfig + "" = ""; + diff --git a/benchmarks/Vector/init b/benchmarks/Vector/init new file mode 100644 index 000000000..afdc93a8d --- /dev/null +++ b/benchmarks/Vector/init @@ -0,0 +1,4 @@ +#ifndef _Vector_icpp_init_stub +#define _Vector_icpp_init_stub +#include "Core/init" +#endif