Author: thiru
Date: Mon Jan 25 08:58:53 2010
New Revision: 902735
URL: http://svn.apache.org/viewvc?rev=902735&view=rev
Log:
AVRO-355. io.Perf test harness uses different random number seeds for each run
Modified:
hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/Perf.java
Modified: hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/Perf.java
URL:
http://svn.apache.org/viewvc/hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/Perf.java?rev=902735&r1=902734&r2=902735&view=diff
==============================================================================
--- hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/Perf.java
(original)
+++ hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/Perf.java Mon
Jan 25 08:58:53 2010
@@ -35,7 +35,6 @@
private static final int COUNT = 200000; // needs to be a multiple of 4
private static final int CYCLES = 150;
-
public static void main(String[] args) throws IOException {
List<Test> tests = new ArrayList<Test>();
for (String a : args) {
@@ -116,6 +115,16 @@
return new BinaryDecoder(new ByteArrayInputStream(data));
}
+ /**
+ * Use a fixed value seed for random number generation
+ * to allow for better cross-run comparisons.
+ */
+ private static final long SEED = 19781210;
+
+ protected static Random newRandom() {
+ return new Random(SEED);
+ }
+
abstract void genData(Encoder e) throws IOException;
abstract void readInternal(Decoder d) throws IOException;
}
@@ -132,7 +141,7 @@
@Override void genData(Encoder e) throws IOException {
e.writeArrayStart();
e.setItemCount((COUNT/4) * 4); //next lowest multiple of 4
- Random r = new Random();
+ Random r = newRandom();
for (int i = 0; i < COUNT/4; i++) {
e.writeInt(r.nextInt(50)); // fits in 1 byte
e.writeInt(r.nextInt(5000)); // fits in 2 bytes
@@ -155,7 +164,7 @@
@Override void genData(Encoder e) throws IOException {
e.writeArrayStart();
e.setItemCount((COUNT / 4) *4);
- Random r = new Random();
+ Random r = newRandom();
for (int i = 0; i < COUNT /4; i++) {
e.writeLong(r.nextLong() % 0x7FL); // half fit in 1, half in 2
e.writeLong(r.nextLong() % 0x1FFFFFL); // half fit in <=3, half in 4
@@ -178,7 +187,7 @@
@Override void genData(Encoder e) throws IOException {
e.writeArrayStart();
e.setItemCount(COUNT);
- Random r = new Random();
+ Random r = newRandom();
for (int i = 0; i < COUNT; i++) {
e.writeFloat(r.nextFloat());
}
@@ -197,7 +206,7 @@
@Override void genData(Encoder e) throws IOException {
e.writeArrayStart();
e.setItemCount(COUNT);
- Random r = new Random();
+ Random r = newRandom();
for (int i = 0; i < COUNT; i++) {
e.writeDouble(r.nextFloat());
}
@@ -230,7 +239,7 @@
protected void genData(Encoder e) throws IOException {
e.writeArrayStart();
e.setItemCount(COUNT);
- Random r = new Random();
+ Random r = newRandom();
for (int i = 0; i < COUNT; i++) {
e.writeDouble(r.nextDouble());
e.writeDouble(r.nextDouble());