| /* |
| * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| // Contributors: |
| // Oracle - initial API and implementation from Oracle TopLink |
| package org.eclipse.persistence.testing.tests.performance.java; |
| |
| import java.util.*; |
| import org.eclipse.persistence.testing.framework.*; |
| |
| /** |
| * This test compares the performance of for loops. |
| */ |
| public class ForLoopTest extends PerformanceComparisonTestCase { |
| public Vector list; |
| public List arrayList; |
| |
| public ForLoopTest() { |
| setName("ForLoop vs Enumeration PerformanceComparisonTest"); |
| setDescription("This test compares the performance of index for loops vs enumeration/iterators."); |
| addIndexArrayListTest(); |
| addEnumeratorTest(); |
| addIteratorTest(); |
| addIteratorArrayListTest(); |
| addForTest(); |
| addForArrayListTest(); |
| list = new Vector(); |
| arrayList = new ArrayList(); |
| for (int index = 0; index < 100; index++) { |
| list.add(new Object()); |
| arrayList.add(new Object()); |
| } |
| } |
| |
| /** |
| * index loop. |
| */ |
| @Override |
| public void test() throws Exception { |
| int size = list.size(); |
| for (int index = 0; index < size; index++) { |
| Object object = list.get(index); |
| object.hashCode(); |
| } |
| } |
| |
| /** |
| * enumeration loop. |
| */ |
| public void addEnumeratorTest() { |
| PerformanceComparisonTestCase test = new PerformanceComparisonTestCase() { |
| @Override |
| public void test() { |
| for (Enumeration enumtr = list.elements(); enumtr.hasMoreElements();) { |
| Object object = enumtr.nextElement(); |
| object.hashCode(); |
| } |
| } |
| }; |
| test.setName("EnumerationTest"); |
| test.setAllowableDecrease(-10); |
| addTest(test); |
| } |
| |
| /** |
| * iterator loop. |
| */ |
| public void addIteratorTest() { |
| PerformanceComparisonTestCase test = new PerformanceComparisonTestCase() { |
| @Override |
| public void test() { |
| for (Iterator iter = list.iterator(); iter.hasNext();) { |
| Object object = iter.next(); |
| object.hashCode(); |
| } |
| } |
| }; |
| test.setName("IteratorTest"); |
| test.setAllowableDecrease(-70); |
| addTest(test); |
| } |
| |
| /** |
| * iterator loop. |
| */ |
| public void addIteratorArrayListTest() { |
| PerformanceComparisonTestCase test = new PerformanceComparisonTestCase() { |
| @Override |
| public void test() { |
| for (Iterator iter = arrayList.iterator(); iter.hasNext();) { |
| Object object = iter.next(); |
| object.hashCode(); |
| } |
| } |
| }; |
| test.setName("ArrayListIteratorTest"); |
| test.setAllowableDecrease(-70); |
| addTest(test); |
| } |
| |
| /** |
| * for loop. |
| */ |
| public void addForArrayListTest() { |
| PerformanceComparisonTestCase test = new PerformanceComparisonTestCase() { |
| @Override |
| public void test() { |
| for (Object object : arrayList) { |
| object.hashCode(); |
| } |
| } |
| }; |
| test.setName("ForArrayListTest"); |
| test.setAllowableDecrease(-70); |
| addTest(test); |
| } |
| |
| /** |
| * for loop. |
| */ |
| public void addForTest() { |
| PerformanceComparisonTestCase test = new PerformanceComparisonTestCase() { |
| @Override |
| public void test() { |
| for (Object object : list) { |
| object.hashCode(); |
| } |
| } |
| }; |
| test.setName("ForTest"); |
| test.setAllowableDecrease(-70); |
| addTest(test); |
| } |
| |
| /** |
| * index loop. |
| */ |
| public void addIndexArrayListTest() { |
| PerformanceComparisonTestCase test = new PerformanceComparisonTestCase() { |
| @Override |
| public void test() { |
| int size = arrayList.size(); |
| for (int index = 0; index < size; index++) { |
| Object object = arrayList.get(index); |
| object.hashCode(); |
| } |
| } |
| }; |
| test.setName("IndexArrayListTest"); |
| test.setAllowableDecrease(-70); |
| addTest(test); |
| } |
| } |