diff --git a/bench/FontCacheBench.cpp b/bench/FontCacheBench.cpp
new file mode 100644
index 0000000..4224e87
--- /dev/null
+++ b/bench/FontCacheBench.cpp
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkBenchmark.h"
+#include "SkCanvas.h"
+#include "SkFontHost.h"
+#include "SkPaint.h"
+#include "SkString.h"
+#include "SkTemplates.h"
+
+#include "glyphs.h"
+
+class FontCacheBench : public SkBenchmark {
+    enum { N = SkBENCHLOOP(800) };
+public:
+    FontCacheBench(void* param) : INHERITED(param) {
+    }
+
+protected:
+    virtual const char* onGetName() SK_OVERRIDE {
+        return "fontcache";
+    }
+
+    virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
+        SkPaint paint;
+        this->setupPaint(&paint);
+        paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
+
+        for (int i = 0; i < N; ++i) {
+            const int16_t* array = gUniqueGlyphIDs;
+            while (*array >= 0) {
+                const int16_t* end = array + 1;
+                while (*end >= 0) {
+                    end += 1;
+                }
+                paint.measureText(array, end - array);
+                array = end + 1;    // skip the sentinel
+            }
+        }
+    }
+
+private:
+    typedef SkBenchmark INHERITED;
+};
+
+///////////////////////////////////////////////////////////////////////////////
+
+DEF_BENCH( return new FontCacheBench(p); )
