/* * Copyright 2008 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.google.gwt.emultest.benchmarks.java.util; import com.google.gwt.benchmarks.client.Benchmark; import com.google.gwt.benchmarks.client.IntRange; import com.google.gwt.benchmarks.client.Operator; import com.google.gwt.benchmarks.client.RangeField; import com.google.gwt.benchmarks.client.Setup; import java.util.HashMap; /** * Benchmarks the HashMap implementation. */ public class HashMapBenchmark extends Benchmark { protected IntRange baseRange = new IntRange(32, Integer.MAX_VALUE, Operator.MULTIPLY, 2); protected IntRange containsRange = new IntRange(10, 200, Operator.ADD, 20); private HashMap<Object, Object> map; public String getModuleName() { return "com.google.gwt.emultest.EmulSuiteBenchmarks"; } public void testHashMapContainsValueInt() { } /** * Checks for <code>size</code> values in a populated HashMap. All items are * Integers, and contain duplicate values. */ @Setup("beginHashMapContainsValueInt") public void testHashMapContainsValueInt(@RangeField("containsRange") Integer size) { int num = size.intValue(); for (int i = 0; i < num; i++) { Integer intVal = new Integer(i); map.containsValue(intVal); } } public void testHashMapContainsValueString() { } /** * Checks for <code>size</code> values in a populated HashMap. All items are * Strings, and contain duplicate values. */ @Setup("beginHashMapContainsValueString") public void testHashMapContainsValueString(@RangeField("containsRange") Integer size) { int num = size.intValue(); for (int i = 0; i < num; i++) { String strVal = Integer.toString(i); map.containsValue(strVal); } } public void testHashMapDuplicateIntAdds() { } /** * Appends <code>size</code> items to an empty HashMap. All items are * Integers, and contain duplicate values. */ @Setup("initMap") public void testHashMapDuplicateIntAdds(@RangeField("baseRange") Integer size) { int num = size.intValue(); for (int i = 0; i < num; i++) { Integer intVal = new Integer(i / 10); map.put(intVal, intVal); } } public void testHashMapDuplicateStringAdds() { } /** * Appends <code>size</code> items to an empty HashMap. All items are * Strings, and contain duplicate values. */ @Setup("initMap") public void testHashMapDuplicateStringAdds(@RangeField("baseRange") Integer size) { int num = size.intValue(); for (int i = 0; i < num; i++) { String strVal = Integer.toString(i / 10); map.put(strVal, strVal); } } public void testHashMapIntAdds() { } /** * Appends <code>size</code> items to an empty HashMap. All items are * Integers, and do not contain duplicate values. */ @Setup("initMap") public void testHashMapIntAdds(@RangeField("baseRange") Integer size) { int num = size.intValue(); for (int i = 0; i < num; i++) { Integer intVal = new Integer(i); map.put(intVal, intVal); } } public void testHashMapIntGets() { } /** * Checks for <code>size</code> values in a populated HashMap. All items are * Integers, and contain duplicate values. */ @Setup("beginHashMapIntGets") public void testHashMapIntGets(@RangeField("baseRange") Integer size) { int num = size.intValue(); for (int i = 0; i < num; i++) { Integer intVal = new Integer(i); map.get(intVal); } } public void testHashMapStringAdds() { } /** * Appends <code>size</code> items to an empty HashMap. All items are * Strings, and do not contain duplicate values. */ @Setup("initMap") public void testHashMapStringAdds(@RangeField("baseRange") Integer size) { int num = size.intValue(); for (int i = 0; i < num; i++) { String strVal = Integer.toString(i); map.put(strVal, strVal); } } public void testHashMapStringGets() { } /** * Checks for size values in a populated HashMap. All items are Strings, and * contain duplicate values. */ @Setup("beginHashMapStringGets") public void testHashMapStringGets(@RangeField("baseRange") Integer size) { int num = size.intValue(); for (int i = 0; i < num; i++) { String strVal = Integer.toString(i); map.get(strVal); } } protected void beginHashMapContainsValueInt(Integer size) { map = new HashMap<Object, Object>(); testHashMapDuplicateIntAdds(size); } protected void beginHashMapContainsValueString(Integer size) { map = new HashMap<Object, Object>(); testHashMapDuplicateStringAdds(size); } protected void beginHashMapIntGets(Integer size) { map = new HashMap<Object, Object>(); testHashMapIntAdds(size); } protected void beginHashMapStringGets(Integer size) { map = new HashMap<Object, Object>(); testHashMapStringAdds(size); } protected void initMap(Integer size) { map = new HashMap<Object, Object>(size); } }