diff --git a/benchmarks/InVectorVsHeap/InVectorVsHeap.cpp b/benchmarks/InVectorVsHeap/InVectorVsHeap.cpp new file mode 100644 index 000000000..a4db4f4f5 --- /dev/null +++ b/benchmarks/InVectorVsHeap/InVectorVsHeap.cpp @@ -0,0 +1,54 @@ +#include + +#include + +using namespace Upp; + +#ifdef _DEBUG +#define M 1 +#define N 10 +#else +#define M 10000 +#define N 100 +#endif + +CONSOLE_APP_MAIN +{ + Vector data; + for(int j = 0; j < M; j++) { + for(int i = 0; i < N; i++) + data.Add(Random()); + { + RTIMING("std::priority_queue"); + std::priority_queue pq; + for(int i = 0; i < N; i++) + pq.push(data[i]); + while(pq.size()) { + DUMP(pq.top()); + pq.pop(); + } + } + LOG("----------------------"); + LOG("----------------------"); + { + RTIMING("SortedIndex"); + SortedIndex sv; + for(int i = 0; i < N; i++) + sv.FindAdd(data[i]); + while(sv.GetCount()) { + DUMP(sv.Top()); + sv.Drop(); + } + } + } +} + +/* +PriorityQueue pq; +pq.GetCount(); +pq.Trim(); +pq.Top(); +pq.TopKey(); +pq.Drop(); +pq.Pop(); +*/ diff --git a/benchmarks/InVectorVsHeap/InVectorVsHeap.upp b/benchmarks/InVectorVsHeap/InVectorVsHeap.upp new file mode 100644 index 000000000..02320bd49 --- /dev/null +++ b/benchmarks/InVectorVsHeap/InVectorVsHeap.upp @@ -0,0 +1,9 @@ +uses + Core; + +file + InVectorVsHeap.cpp; + +mainconfig + "" = ""; +