javaextensions/midprms_db/tsrc/rmsbenchmark/javasrc/RMSBenchmark.java
branchRCL_3
changeset 19 04becd199f91
child 78 71ad690e91f5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javaextensions/midprms_db/tsrc/rmsbenchmark/javasrc/RMSBenchmark.java	Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+public class RMSBenchmark implements Benchmark
+{
+    private int NUMBER_OF_GETSCORE_REQUESTS = 0;
+    private StringBuffer myScores[];
+
+    private static final int[] quickTest = {100};
+    private static final int[] fullTest = {10, 100, 1000, 10000, 100000};
+    private int[] testSet;
+
+    private int NUMBER_OF_TESTS = 9;
+    private int NUMBER_OF_SCORES;// = NUMBER_OF_TESTS * testSet.length;
+
+    RMSBenchmark(boolean aRunFullTests)
+    {
+        if (aRunFullTests)
+        {
+            testSet = new int[fullTest.length];
+            System.arraycopy(fullTest, 0, testSet, 0, fullTest.length);
+        }
+        else
+        {
+            testSet = new int[quickTest.length];
+            System.arraycopy(quickTest, 0, testSet, 0, quickTest.length);
+        }
+        NUMBER_OF_SCORES = NUMBER_OF_TESTS * testSet.length;
+
+        myScores = new StringBuffer[NUMBER_OF_SCORES];
+        for (int i = 0; i < myScores.length; i++)
+        {
+            myScores[i] = new StringBuffer();
+        }
+    }
+
+    public void runTest()
+    {
+        System.out.println("RMSBenchmark.runTest()");
+
+        for (int i = 0; i < testSet.length; i++)
+        {
+            System.out.println("loop start: "+i);
+            Storage storage = new Storage(testSet[i]);
+            myScores[i*NUMBER_OF_TESTS + 0].append(storage.createRecord());
+            myScores[i*NUMBER_OF_TESTS + 1].append(storage.readEnumRecord());
+            myScores[i*NUMBER_OF_TESTS + 2].append(storage.readRandomRecord());
+            myScores[i*NUMBER_OF_TESTS + 3].append(storage.createEnum());
+            myScores[i*NUMBER_OF_TESTS + 4].append(storage.setRecord());
+            myScores[i*NUMBER_OF_TESTS + 5].append(storage.openStore());
+            myScores[i*NUMBER_OF_TESTS + 6].append(storage.closeStore());
+            myScores[i*NUMBER_OF_TESTS + 7].append(storage.deleteRecord());
+            myScores[i*NUMBER_OF_TESTS + 8].append(""); // spacer
+            storage.clean();
+            System.out.println("loop done: "+i);
+        }
+
+        System.out.println("RMSBenchmark.runTest() completed");
+    }
+
+    public boolean getScore(StringBuffer score)
+    {
+        if (NUMBER_OF_GETSCORE_REQUESTS < NUMBER_OF_SCORES)
+        {
+            score.append(myScores[NUMBER_OF_GETSCORE_REQUESTS].toString());
+            NUMBER_OF_GETSCORE_REQUESTS++;
+            return true;
+        }
+        else
+        {
+            return false;
+        }
+    }
+}