| Index: bench/StackBench.cpp
|
| diff --git a/bench/StackBench.cpp b/bench/StackBench.cpp
|
| index 61af99fb1a22c964bd84c1e609bfbeb80e2f4b3d..43888bdc376595c62f808040a42bbf8bd88673ce 100644
|
| --- a/bench/StackBench.cpp
|
| +++ b/bench/StackBench.cpp
|
| @@ -12,6 +12,7 @@
|
| #include "SkDeque.h"
|
| #include "SkTArray.h"
|
| #include "SkTDArray.h"
|
| +#include <vector>
|
|
|
| // This file has several benchmarks using various data structures to do stack-like things:
|
| // - push
|
| @@ -78,6 +79,16 @@ BENCH(TDArray_Serial) {
|
| }
|
| }
|
|
|
| +BENCH(vector_Serial) {
|
| + std::vector<int> s;
|
| + for (int i = 0; i < K; i++) s.push_back(i);
|
| +
|
| + volatile int junk = 0;
|
| + for (int j = 0; j < loops; j++) {
|
| + for (size_t i = 0; i < s.size(); i++) junk += s[i];
|
| + }
|
| +}
|
| +
|
| // Add K items, then randomly access them many times.
|
|
|
| BENCH(TArray_RandomAccess) {
|
| @@ -102,6 +113,17 @@ BENCH(TDArray_RandomAccess) {
|
| }
|
| }
|
|
|
| +BENCH(vector_RandomAccess) {
|
| + std::vector<int> s;
|
| + for (int i = 0; i < K; i++) s.push_back(i);
|
| +
|
| + SkRandom rand;
|
| + volatile int junk = 0;
|
| + for (int i = 0; i < K*loops; i++) {
|
| + junk += s[rand.nextULessThan(K)];
|
| + }
|
| +}
|
| +
|
| // Push many times.
|
|
|
| BENCH(ChunkAlloc_Push) {
|
| @@ -124,6 +146,11 @@ BENCH(TDArray_Push) {
|
| for (int i = 0; i < K*loops; i++) s.push(i);
|
| }
|
|
|
| +BENCH(vector_Push) {
|
| + std::vector<int> s;
|
| + for (int i = 0; i < K*loops; i++) s.push_back(i);
|
| +}
|
| +
|
| // Push then immediately pop many times.
|
|
|
| BENCH(ChunkAlloc_PushPop) {
|
| @@ -158,6 +185,14 @@ BENCH(TDArray_PushPop) {
|
| }
|
| }
|
|
|
| +BENCH(vector_PushPop) {
|
| + std::vector<int> s;
|
| + for (int i = 0; i < K*loops; i++) {
|
| + s.push_back(i);
|
| + s.pop_back();
|
| + }
|
| +}
|
| +
|
| // Push many items, then pop them all.
|
|
|
| BENCH(Deque_PushAllPopAll) {
|
| @@ -177,3 +212,9 @@ BENCH(TDArray_PushAllPopAll) {
|
| for (int i = 0; i < K*loops; i++) s.push(i);
|
| for (int i = 0; i < K*loops; i++) s.pop();
|
| }
|
| +
|
| +BENCH(vector_PushAllPopAll) {
|
| + std::vector<int> s;
|
| + for (int i = 0; i < K*loops; i++) s.push_back(i);
|
| + for (int i = 0; i < K*loops; i++) s.pop_back();
|
| +}
|
|
|