Fix metrics speed tests on Windows

Write to NUL on Windows and /dev/null on other platforms. Increase the
default number of iterations to avoid problems with the reduced timing
precision on Windows.

Closes gh-2976
pull/3013/head
Andy Wilkinson 10 years ago
parent 2de791f53e
commit 129c24926e

@ -69,7 +69,7 @@ public class BufferGaugeServiceSpeedTests {
private static int threadCount = 2; private static int threadCount = 2;
private static final int number = Boolean.getBoolean("performance.test") ? 10000000 private static final int number = Boolean.getBoolean("performance.test") ? 10000000
: 100000; : 1000000;
private static StopWatch watch = new StopWatch("count"); private static StopWatch watch = new StopWatch("count");
@ -79,7 +79,7 @@ public class BufferGaugeServiceSpeedTests {
@BeforeClass @BeforeClass
public static void prime() throws FileNotFoundException { public static void prime() throws FileNotFoundException {
err = new PrintWriter("/dev/null"); err = new NullPrintWriter();
final Random random = new Random(); final Random random = new Random();
for (int i = 0; i < 1000; i++) { for (int i = 0; i < 1000; i++) {
sample[i] = names[random.nextInt(names.length)]; sample[i] = names[random.nextInt(names.length)];

@ -67,7 +67,7 @@ public class CounterServiceSpeedTests {
private static int threadCount = 2; private static int threadCount = 2;
private static final int number = Boolean.getBoolean("performance.test") ? 10000000 private static final int number = Boolean.getBoolean("performance.test") ? 10000000
: 100000; : 1000000;
private static StopWatch watch = new StopWatch("count"); private static StopWatch watch = new StopWatch("count");
@ -77,7 +77,7 @@ public class CounterServiceSpeedTests {
@BeforeClass @BeforeClass
public static void prime() throws FileNotFoundException { public static void prime() throws FileNotFoundException {
err = new PrintWriter("/dev/null"); err = new NullPrintWriter();
final Random random = new Random(); final Random random = new Random();
for (int i = 0; i < 1000; i++) { for (int i = 0; i < 1000; i++) {
sample[i] = names[random.nextInt(names.length)]; sample[i] = names[random.nextInt(names.length)];

@ -67,7 +67,7 @@ public class DefaultCounterServiceSpeedTests {
private static int threadCount = 2; private static int threadCount = 2;
private static final int number = Boolean.getBoolean("performance.test") ? 2000000 private static final int number = Boolean.getBoolean("performance.test") ? 2000000
: 100000; : 1000000;
private static int count; private static int count;
@ -77,7 +77,7 @@ public class DefaultCounterServiceSpeedTests {
@BeforeClass @BeforeClass
public static void prime() throws FileNotFoundException { public static void prime() throws FileNotFoundException {
err = new PrintWriter("/dev/null"); err = new NullPrintWriter();
final Random random = new Random(); final Random random = new Random();
for (int i = 0; i < 1000; i++) { for (int i = 0; i < 1000; i++) {
sample[i] = names[random.nextInt(names.length)]; sample[i] = names[random.nextInt(names.length)];

@ -67,7 +67,7 @@ public class DefaultGaugeServiceSpeedTests {
private static int threadCount = 2; private static int threadCount = 2;
private static final int number = Boolean.getBoolean("performance.test") ? 5000000 private static final int number = Boolean.getBoolean("performance.test") ? 5000000
: 100000; : 1000000;
private static int count; private static int count;
@ -77,7 +77,7 @@ public class DefaultGaugeServiceSpeedTests {
@BeforeClass @BeforeClass
public static void prime() throws FileNotFoundException { public static void prime() throws FileNotFoundException {
err = new PrintWriter("/dev/null"); err = new NullPrintWriter();
final Random random = new Random(); final Random random = new Random();
for (int i = 0; i < 1000; i++) { for (int i = 0; i < 1000; i++) {
sample[i] = names[random.nextInt(names.length)]; sample[i] = names[random.nextInt(names.length)];

@ -70,7 +70,7 @@ public class DropwizardCounterServiceSpeedTests {
private static int threadCount = 2; private static int threadCount = 2;
private static final int number = Boolean.getBoolean("performance.test") ? 10000000 private static final int number = Boolean.getBoolean("performance.test") ? 10000000
: 100000; : 1000000;
private static int count; private static int count;
@ -80,7 +80,7 @@ public class DropwizardCounterServiceSpeedTests {
@BeforeClass @BeforeClass
public static void prime() throws FileNotFoundException { public static void prime() throws FileNotFoundException {
err = new PrintWriter("/dev/null"); err = new NullPrintWriter();
final Random random = new Random(); final Random random = new Random();
for (int i = 0; i < 1000; i++) { for (int i = 0; i < 1000; i++) {
sample[i] = names[random.nextInt(names.length)]; sample[i] = names[random.nextInt(names.length)];

@ -0,0 +1,39 @@
/*
* Copyright 2012-2015 the original author or authors.
*
* 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 org.springframework.boot.actuate.metrics.buffer;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
/**
* A {@link PrintWriter} that writes to {@code NUL} on Windows and {@code /dev/null} on
* all other platforms.
*
* @author Andy Wilkinson
*/
public class NullPrintWriter extends PrintWriter {
public NullPrintWriter() throws FileNotFoundException {
super(isWindows() ? "NUL" : "/dev/null");
}
private static boolean isWindows() {
return File.separatorChar == '\\';
}
}
Loading…
Cancel
Save