Package mikera.vectorz.performance

Source Code of mikera.vectorz.performance.ListBenchmark

package mikera.vectorz.performance;

import java.util.ArrayList;

import com.google.caliper.Runner;
import com.google.caliper.SimpleBenchmark;

/**
* Caliper based benchmarks for sublist iteration
*
* See debate at: http://stackoverflow.com/questions/17302130/enhanced-for-loop/17302215
*
* @author Mike
*/

public class ListBenchmark extends SimpleBenchmark {
  int result;
 
  int LIST_SIZE=8;
  //int LIST_SIZE=320;
 
  // about 13ns per iteration
  public void timeIndexed(int runs) {
    ArrayList<Integer> calc = new ArrayList<Integer>();
    for (int i=0; i<LIST_SIZE; i++) calc.add(i);
   
    for (int i=0; i<runs; i++) {
      int n=calc.size();
      for (int j=2; j<n; j++) {
        result+=calc.get(j);
      }
    }
  }
 
  public void timeIndexedWithSize(int runs) {
    ArrayList<Integer> calc = new ArrayList<Integer>();
    for (int i=0; i<LIST_SIZE; i++) calc.add(i);
   
    for (int i=0; i<runs; i++) {
      for (int j=2; j<calc.size(); j++) {
        result+=calc.get(j);
      }
    }
  }
 
  // about 33 ns per iteration
  public void timeIterator(int runs) {
    ArrayList<Integer> calc = new ArrayList<Integer>();
    for (int i=0; i<LIST_SIZE; i++) calc.add(i);
   
    for (int i=0; i<runs; i++) {
      int n=calc.size();
      for (Integer j: calc.subList(2, n)) {
        result+=j;
      }
    }
  }
 

  public static void main(String[] args) {
    new ListBenchmark().run();
  }

  private void run() {
    Runner runner=new Runner();
    runner.run(new String[] {this.getClass().getCanonicalName()});
  }

}
TOP

Related Classes of mikera.vectorz.performance.ListBenchmark

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.