blob: 53bd546f6b93d30608ac2e42629fee53747d4066 [file] [log] [blame]
/*
* 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);
}
}