add bench for SkPoint::normalize()

git-svn-id: http://skia.googlecode.com/svn/trunk@8977 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
reed@google.com 2013-05-03 12:56:39 +00:00
parent 2fd42c471c
commit 0889f682fb

View File

@ -433,6 +433,55 @@ private:
///////////////////////////////////////////////////////////////////////////////
class NormalizeBench : public SkBenchmark {
enum {
ARRAY = SkBENCHLOOP(1000),
LOOP = SkBENCHLOOP(1000),
};
SkVector fVec[ARRAY];
bool fUsePortable;
public:
NormalizeBench(void* param, bool usePortable)
: INHERITED(param)
, fUsePortable(usePortable) {
SkRandom rand;
for (int i = 0; i < ARRAY; ++i) {
fVec[i].set(rand.nextSScalar1(), rand.nextSScalar1());
}
fName = "point_normalize";
fIsRendering = false;
}
// just so the compiler doesn't remove our loops
virtual void process(int) {}
protected:
virtual void onDraw(SkCanvas*) {
int accum = 0;
for (int j = 0; j < LOOP; ++j) {
for (int i = 0; i < ARRAY; ++i) {
accum += fVec[i].normalize();
}
this->process(accum);
}
}
virtual const char* onGetName() {
return fName;
}
private:
const char* fName;
typedef SkBenchmark INHERITED;
};
///////////////////////////////////////////////////////////////////////////////
DEF_BENCH( return new NoOpMathBench(p); )
DEF_BENCH( return new SlowISqrtMathBench(p); )
DEF_BENCH( return new FastISqrtMathBench(p); )
@ -452,3 +501,5 @@ DEF_BENCH( return new FloorBench(p, true); )
DEF_BENCH( return new CLZBench(p, false); )
DEF_BENCH( return new CLZBench(p, true); )
DEF_BENCH( return new NormalizeBench(p, false); )