| Index: bench/RTreeBench.cpp
|
| diff --git a/bench/RTreeBench.cpp b/bench/RTreeBench.cpp
|
| index bce1b67513f734d115b174928b6885eca1e41c19..e9fe60318cf26dd98f6a3a676386b6e62c28c5a3 100644
|
| --- a/bench/RTreeBench.cpp
|
| +++ b/bench/RTreeBench.cpp
|
| @@ -17,6 +17,7 @@ static const int GENERATE_EXTENTS = 1000;
|
| static const int NUM_BUILD_RECTS = 500;
|
| static const int NUM_QUERY_RECTS = 5000;
|
| static const int NUM_QUERIES = 1000;
|
| +static const int GRID_WIDTH = 100;
|
|
|
| typedef SkIRect (*MakeRectProc)(SkMWCRandom&, int, int);
|
|
|
| @@ -163,6 +164,23 @@ static inline SkIRect make_concentric_rects_decreasing(SkMWCRandom&, int index,
|
| return out;
|
| }
|
|
|
| +static inline SkIRect make_XYordered_rects(SkMWCRandom& rand, int index, int numRects) {
|
| + SkIRect out;
|
| + out.fLeft = index % GRID_WIDTH;
|
| + out.fTop = index / GRID_WIDTH;
|
| + out.fRight = out.fLeft + 1 + rand.nextU() % (GENERATE_EXTENTS / 3);
|
| + out.fBottom = out.fTop + 1 + rand.nextU() % (GENERATE_EXTENTS / 3);
|
| + return out;
|
| +}
|
| +static inline SkIRect make_YXordered_rects(SkMWCRandom& rand, int index, int numRects) {
|
| + SkIRect out;
|
| + out.fLeft = index / GRID_WIDTH;
|
| + out.fTop = index % GRID_WIDTH;
|
| + out.fRight = out.fLeft + 1 + rand.nextU() % (GENERATE_EXTENTS / 3);
|
| + out.fBottom = out.fTop + 1 + rand.nextU() % (GENERATE_EXTENTS / 3);
|
| + return out;
|
| +}
|
| +
|
| static inline SkIRect make_point_rects(SkMWCRandom& rand, int index, int numRects) {
|
| SkIRect out;
|
| out.fLeft = rand.nextU() % GENERATE_EXTENTS;
|
| @@ -193,28 +211,102 @@ static inline SkIRect make_large_rects(SkMWCRandom& rand, int index, int numRect
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| static inline SkBenchmark* Fact0(void* p) {
|
| - return SkNEW_ARGS(BBoxBuildBench, (p, "random", &make_random_rects, true,
|
| + return SkNEW_ARGS(BBoxBuildBench, (p, "XYordered", &make_XYordered_rects, false,
|
| SkRTree::Create(5, 16)));
|
| }
|
| static inline SkBenchmark* Fact1(void* p) {
|
| - return SkNEW_ARGS(BBoxBuildBench, (p, "random", &make_random_rects, false,
|
| + return SkNEW_ARGS(BBoxBuildBench, (p, "XYordered", &make_XYordered_rects, true,
|
| SkRTree::Create(5, 16)));
|
| }
|
| static inline SkBenchmark* Fact2(void* p) {
|
| - return SkNEW_ARGS(BBoxBuildBench, (p, "concentric",
|
| - &make_concentric_rects_increasing, true, SkRTree::Create(5, 16)));
|
| + return SkNEW_ARGS(BBoxBuildBench, (p, "(unsorted)XYordered", &make_XYordered_rects, true,
|
| + SkRTree::Create(5, 16, 1, false)));
|
| }
|
| static inline SkBenchmark* Fact3(void* p) {
|
| - return SkNEW_ARGS(BBoxQueryBench, (p, "random", &make_random_rects, true,
|
| + return SkNEW_ARGS(BBoxQueryBench, (p, "XYordered", &make_XYordered_rects, true,
|
| BBoxQueryBench::kRandom_QueryType, SkRTree::Create(5, 16)));
|
| }
|
| static inline SkBenchmark* Fact4(void* p) {
|
| - return SkNEW_ARGS(BBoxQueryBench, (p, "random", &make_random_rects, false,
|
| + return SkNEW_ARGS(BBoxQueryBench, (p, "(unsorted)XYordered", &make_XYordered_rects, true,
|
| + BBoxQueryBench::kRandom_QueryType, SkRTree::Create(5, 16, 1, false)));
|
| +}
|
| +
|
| +static inline SkBenchmark* Fact5(void* p) {
|
| + return SkNEW_ARGS(BBoxBuildBench, (p, "YXordered", &make_YXordered_rects, false,
|
| + SkRTree::Create(5, 16)));
|
| +}
|
| +static inline SkBenchmark* Fact6(void* p) {
|
| + return SkNEW_ARGS(BBoxBuildBench, (p, "YXordered", &make_YXordered_rects, true,
|
| + SkRTree::Create(5, 16)));
|
| +}
|
| +static inline SkBenchmark* Fact7(void* p) {
|
| + return SkNEW_ARGS(BBoxBuildBench, (p, "(unsorted)YXordered", &make_YXordered_rects, true,
|
| + SkRTree::Create(5, 16, 1, false)));
|
| +}
|
| +static inline SkBenchmark* Fact8(void* p) {
|
| + return SkNEW_ARGS(BBoxQueryBench, (p, "YXordered", &make_YXordered_rects, true,
|
| BBoxQueryBench::kRandom_QueryType, SkRTree::Create(5, 16)));
|
| }
|
| +static inline SkBenchmark* Fact9(void* p) {
|
| + return SkNEW_ARGS(BBoxQueryBench, (p, "(unsorted)YXordered", &make_YXordered_rects, true,
|
| + BBoxQueryBench::kRandom_QueryType, SkRTree::Create(5, 16, 1, false)));
|
| +}
|
|
|
| -static BenchRegistry gReg0(Fact0);
|
| -static BenchRegistry gReg1(Fact1);
|
| -static BenchRegistry gReg2(Fact2);
|
| -static BenchRegistry gReg3(Fact3);
|
| +static inline SkBenchmark* Fact10(void* p) {
|
| + return SkNEW_ARGS(BBoxBuildBench, (p, "random", &make_random_rects, false,
|
| + SkRTree::Create(5, 16)));
|
| +}
|
| +static inline SkBenchmark* Fact11(void* p) {
|
| + return SkNEW_ARGS(BBoxBuildBench, (p, "random", &make_random_rects, true,
|
| + SkRTree::Create(5, 16)));
|
| +}
|
| +static inline SkBenchmark* Fact12(void* p) {
|
| + return SkNEW_ARGS(BBoxBuildBench, (p, "(unsorted)random", &make_random_rects, true,
|
| + SkRTree::Create(5, 16, 1, false)));
|
| +}
|
| +static inline SkBenchmark* Fact13(void* p) {
|
| + return SkNEW_ARGS(BBoxQueryBench, (p, "random", &make_random_rects, true,
|
| + BBoxQueryBench::kRandom_QueryType, SkRTree::Create(5, 16)));
|
| +}
|
| +static inline SkBenchmark* Fact14(void* p) {
|
| + return SkNEW_ARGS(BBoxQueryBench, (p, "(unsorted)random", &make_random_rects, true,
|
| + BBoxQueryBench::kRandom_QueryType, SkRTree::Create(5, 16, 1, false)));
|
| +}
|
| +
|
| +static inline SkBenchmark* Fact15(void* p) {
|
| + return SkNEW_ARGS(BBoxBuildBench, (p, "concentric",
|
| + &make_concentric_rects_increasing, true, SkRTree::Create(5, 16)));
|
| +}
|
| +static inline SkBenchmark* Fact16(void* p) {
|
| + return SkNEW_ARGS(BBoxBuildBench, (p, "(unsorted)concentric",
|
| + &make_concentric_rects_increasing, true, SkRTree::Create(5, 16, 1, false)));
|
| +}
|
| +static inline SkBenchmark* Fact17(void* p) {
|
| + return SkNEW_ARGS(BBoxQueryBench, (p, "concentric", &make_concentric_rects_increasing, true,
|
| + BBoxQueryBench::kRandom_QueryType, SkRTree::Create(5, 16)));
|
| +}
|
| +static inline SkBenchmark* Fact18(void* p) {
|
| + return SkNEW_ARGS(BBoxQueryBench, (p, "(unsorted)concentric", &make_concentric_rects_increasing, true,
|
| + BBoxQueryBench::kRandom_QueryType, SkRTree::Create(5, 16, 1, false)));
|
| +}
|
| +
|
| +static BenchRegistry gReg18(Fact18);
|
| +static BenchRegistry gReg17(Fact17);
|
| +static BenchRegistry gReg16(Fact16);
|
| +static BenchRegistry gReg15(Fact15);
|
| +static BenchRegistry gReg14(Fact14);
|
| +static BenchRegistry gReg13(Fact13);
|
| +static BenchRegistry gReg12(Fact12);
|
| +static BenchRegistry gReg11(Fact11);
|
| +static BenchRegistry gReg10(Fact10);
|
| +static BenchRegistry gReg9(Fact9);
|
| +static BenchRegistry gReg8(Fact8);
|
| +static BenchRegistry gReg7(Fact7);
|
| +static BenchRegistry gReg6(Fact6);
|
| +static BenchRegistry gReg5(Fact5);
|
| static BenchRegistry gReg4(Fact4);
|
| +static BenchRegistry gReg3(Fact3);
|
| +static BenchRegistry gReg2(Fact2);
|
| +static BenchRegistry gReg1(Fact1);
|
| +static BenchRegistry gReg0(Fact0);
|
| +
|
|
|