From a2ac9c490c37d9c802b2eeb212cf95ef8ed21e64 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Wed, 24 Feb 2010 16:50:02 -0800 Subject: [PATCH] Remove incorrect/misleading irrelevancies from example code. (I'll start checking in all my benchmarks -- not just the ones relevant to this document -- somewhere under dalvik/libcore/ tomorrow, and we can see about linking to them for those who want something they can actually run, or just want to see the exact code that was benchmarked.) --- .../guide/practices/design/performance.jd | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/docs/html/guide/practices/design/performance.jd b/docs/html/guide/practices/design/performance.jd index ab3b3d34798f7..baed02076f858 100644 --- a/docs/html/guide/practices/design/performance.jd +++ b/docs/html/guide/practices/design/performance.jd @@ -356,25 +356,19 @@ for loop syntax will be exactly equivalent to explicit iterator usage.

There are several alternatives for iterating through an array:

-
public class Foo {
-    int mSplat;
-}
-public class ArrayBenchmark {
-    Foo[] mArray = new Foo[27];
-    {
-        for (int i = 0; i < mArray.length; ++i) {
-            mArray[i] = new Foo();
-        }
+
    static class Foo {
+        int mSplat;
     }
+    Foo[] mArray = ...
 
-    public static void zero() {
+    public void zero() {
         int sum = 0;
         for (int i = 0; i < mArray.length; ++i) {
             sum += mArray[i].mSplat;
         }
     }
 
-    public static void one() {
+    public void one() {
         int sum = 0;
         Foo[] localArray = mArray;
         int len = localArray.length;
@@ -384,13 +378,13 @@ public class ArrayBenchmark {
         }
     }
 
-    public static void two() {
+    public void two() {
         int sum = 0;
         for (Foo a : mArray) {
             sum += a.mSplat;
         }
     }
-}
+

zero() is slowest, because the JIT can't yet optimize away the cost of getting the array length once for every iteration through the