From d91d3931df3f0e8916743b618b41000ea3fd1e3c Mon Sep 17 00:00:00 2001 From: cxl Date: Thu, 12 Jan 2012 20:23:11 +0000 Subject: [PATCH] .developing svo_value git-svn-id: svn://ultimatepp.org/upp/trunk@4402 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- benchmarks/ValueBench/ValueBench.cpp | 71 ++++++++++++++++++++++++++++ benchmarks/ValueBench/ValueBench.upp | 11 +++++ benchmarks/ValueBench/init | 4 ++ benchmarks/idmapBench/main.cpp | 1 + 4 files changed, 87 insertions(+) create mode 100644 benchmarks/ValueBench/ValueBench.cpp create mode 100644 benchmarks/ValueBench/ValueBench.upp create mode 100644 benchmarks/ValueBench/init diff --git a/benchmarks/ValueBench/ValueBench.cpp b/benchmarks/ValueBench/ValueBench.cpp new file mode 100644 index 000000000..ffb747c0e --- /dev/null +++ b/benchmarks/ValueBench/ValueBench.cpp @@ -0,0 +1,71 @@ +#include + +using namespace Upp; + +#ifdef _DEBUG +#define N 1 +#else +#define N 100000 +#endif + +CONSOLE_APP_MAIN +{ + StdLogSetup(LOG_COUT|LOG_FILE); + Vector x; + Vector xs; + for(int i = 0; i < 100; i++) { + x.Add(Random(1000)); + xs.Add(AsString(1000)); + } + int sum; + for(int i = 0; i < N; i++) { + ValueArray va; + { + va.Clear(); + RTIMING("Add int"); + for(int i = 0; i < 100; i++) + va.Add(x[i]); + } + { + RTIMING("Read int"); + for(int i = 0; i < va.GetCount(); i++) + sum += (int)va[i]; + } + { + va.Clear(); + RTIMING("Add String"); + for(int i = 0; i < 100; i++) + va.Add(xs[i]); + } + { + RTIMING("Read String"); + for(int i = 0; i < va.GetCount(); i++) + sum += String(va[i]).GetLength(); + } + Vector vs; + { + vs.Clear(); + RTIMING("Add Vector"); + for(int i = 0; i < 100; i++) + vs.Add(xs[i]); + } + { + RTIMING("Read Vector"); + for(int i = 0; i < vs.GetCount(); i++) + sum += vs[i].GetLength(); + } + Vector vv; + { + vv.Clear(); + RTIMING("Add Vector"); + for(int i = 0; i < 100; i++) + vv.Add(xs[i]); + } + { + RTIMING("Read Vector"); + for(int i = 0; i < vv.GetCount(); i++) + sum += String(vv[i]).GetLength(); + } + } + Cout() << sum << "\n"; +} diff --git a/benchmarks/ValueBench/ValueBench.upp b/benchmarks/ValueBench/ValueBench.upp new file mode 100644 index 000000000..37be843de --- /dev/null +++ b/benchmarks/ValueBench/ValueBench.upp @@ -0,0 +1,11 @@ +optimize_speed; + +uses + Core; + +file + ValueBench.cpp; + +mainconfig + "" = "SSE2 MT"; + diff --git a/benchmarks/ValueBench/init b/benchmarks/ValueBench/init new file mode 100644 index 000000000..d7719538c --- /dev/null +++ b/benchmarks/ValueBench/init @@ -0,0 +1,4 @@ +#ifndef _ValueBench_icpp_init_stub +#define _ValueBench_icpp_init_stub +#include "Core/init" +#endif diff --git a/benchmarks/idmapBench/main.cpp b/benchmarks/idmapBench/main.cpp index 7fca492a7..ef508b459 100644 --- a/benchmarks/idmapBench/main.cpp +++ b/benchmarks/idmapBench/main.cpp @@ -104,6 +104,7 @@ void BenchValueMap(const char *file) { c = in.Get(); } ValueArray va = map[id]; + map.Set(id, Null); va.Add(line); map.Set(id, va); }