aboutsummaryrefslogtreecommitdiff
path: root/android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java')
-rw-r--r--android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java111
1 files changed, 0 insertions, 111 deletions
diff --git a/android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java b/android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java
deleted file mode 100644
index 52532bb61..000000000
--- a/android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2017 The Guava 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 com.google.common.io;
-
-import com.google.caliper.BeforeExperiment;
-import com.google.caliper.Benchmark;
-import com.google.caliper.Param;
-import com.google.caliper.api.VmOptions;
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.nio.CharBuffer;
-import java.util.Random;
-
-/**
- * Benchmarks for {@link CharStreams#copy}.
- *
- * <p>{@link CharStreams#copy} has type specific optimizations for various common Appendable and
- * Reader implementations, this compares the performance of the different options.
- */
-// These benchmarks allocate a lot of data so use a large heap
-@VmOptions({"-Xms12g", "-Xmx12g", "-d64"})
-public class CharStreamsCopyBenchmark {
- enum CopyStrategy {
- OLD {
- @Override
- long copy(Readable from, Appendable to) throws IOException {
- CharBuffer buf = CharStreams.createBuffer();
- long total = 0;
- while (from.read(buf) != -1) {
- buf.flip();
- to.append(buf);
- total += buf.remaining();
- buf.clear();
- }
- return total;
- }
- },
- NEW {
- @Override
- long copy(Readable from, Appendable to) throws IOException {
- return CharStreams.copy(from, to);
- }
- };
-
- abstract long copy(Readable from, Appendable to) throws IOException;
- }
-
- enum TargetSupplier {
- STRING_WRITER {
- @Override
- Appendable get(int sz) {
- return new StringWriter(sz);
- }
- },
- STRING_BUILDER {
- @Override
- Appendable get(int sz) {
- return new StringBuilder(sz);
- }
- };
-
- abstract Appendable get(int sz);
- }
-
- @Param CopyStrategy strategy;
- @Param TargetSupplier target;
-
- @Param({"10", "1024", "1048576"})
- int size;
-
- String data;
-
- @BeforeExperiment
- public void setUp() {
- // precalculate some random strings of ascii characters.
- StringBuilder sb = new StringBuilder();
- Random random = new Random(0xdeadbeef); // for unpredictable but reproducible behavior
- sb.ensureCapacity(size);
- for (int k = 0; k < size; k++) {
- // [9-127) includes all ascii non-control characters
- sb.append((char) (random.nextInt(127 - 9) + 9));
- }
- data = sb.toString();
- }
-
- @Benchmark
- public long timeCopy(int reps) throws IOException {
- long r = 0;
- final String localData = data;
- final TargetSupplier localTarget = target;
- final CopyStrategy localStrategy = strategy;
- for (int i = 0; i < reps; i++) {
- Appendable appendable = localTarget.get(localData.length());
- r += localStrategy.copy(new StringReader(localData), appendable);
- }
- return r;
- }
-}