From 42d81a9decda58cc3b5fe63c2660217c48b7be73 Mon Sep 17 00:00:00 2001 From: cxl Date: Sat, 23 Feb 2013 20:19:14 +0000 Subject: [PATCH] .benchmarks: InVectorCache git-svn-id: svn://ultimatepp.org/upp/trunk@5854 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- benchmarks/InVectorCache/InVectorCache.cpp | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/benchmarks/InVectorCache/InVectorCache.cpp b/benchmarks/InVectorCache/InVectorCache.cpp index 75254b459..71b231d47 100644 --- a/benchmarks/InVectorCache/InVectorCache.cpp +++ b/benchmarks/InVectorCache/InVectorCache.cpp @@ -19,6 +19,34 @@ CONSOLE_APP_MAIN } RDUMP(m); } + { + RTIMING("Simple scan, more complex OP"); + int m = 0; + for(int j = 0; j < N; j++) { + for(int i = 0; i < x.GetCount(); i++) + if(x[i] > 500) + m += x[i]; + for(int i = x.GetCount(); --i >= 0;) + if(x[i] > 500) + m += x[i]; + } + RDUMP(m); + } + { + RTIMING("Iterator scan"); + int m = 0; + for(int j = 0; j < N; j++) { + InVector::Iterator e = x.End(); + InVector::Iterator i = x.Begin(); + while(i != e) + m += *i++; + e = x.Begin(); + i = x.End(); + while(i != e) + m += *--i; + } + RDUMP(m); + } { RTIMING("Single InVector, problematic scan"); int m = 0;