XenoAmess edited a comment on pull request #118:
URL: https://github.com/apache/commons-io/pull/118#issuecomment-637035997


   @garydgregory
   Performance test done.
   **Conclusion:**
   In cases for small content readers, the new function is slightly faster.
   but in cases for large content, the new function can be 6.5 times faster.
   
   ```
   D:\workspace\commons-io>mvn -Pbenchmark
   [INFO] Scanning for projects...
   [INFO]
   [INFO] -----------------------< commons-io:commons-io 
>------------------------
   [INFO] Building Apache Commons IO 2.7.1-SNAPSHOT
   [INFO] --------------------------------[ jar 
]---------------------------------
   [INFO]
   [INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ commons-io ---
   [INFO] Deleting D:\workspace\commons-io\target
   [INFO]
   [INFO] --- maven-enforcer-plugin:3.0.0-M2:enforce (enforce-maven-version) @ 
commons-io ---
   [INFO]
   [INFO] --- maven-enforcer-plugin:3.0.0-M2:enforce (enforce-maven-3) @ 
commons-io ---
   [INFO]
   [INFO] --- apache-rat-plugin:0.13:check (rat-check) @ commons-io ---
   [INFO] Enabled default license matchers.
   [INFO] Will parse SCM ignores for exclusions...
   [INFO] Parsing exclusions from D:\workspace\commons-io\.gitignore
   [INFO] Finished adding exclusions from SCM ignore files.
   [INFO] 73 implicit excludes (use -debug for more details).
   [INFO] 12 explicit excludes (use -debug for more details).
   [INFO] 373 resources included (use -debug for more details)
   [INFO] Rat check: Summary over all files. Unapproved: 0, unknown: 0, 
generated: 0, approved: 364 licenses.
   [INFO]
   [INFO] --- build-helper-maven-plugin:3.0.0:parse-version (parse-version) @ 
commons-io ---
   [INFO]
   [INFO] --- maven-antrun-plugin:1.8:run (javadoc.resources) @ commons-io ---
   [INFO] Executing tasks
   
   main:
        [copy] Copying 2 files to 
D:\workspace\commons-io\target\apidocs\META-INF
   [INFO] Executed tasks
   [INFO]
   [INFO] --- maven-remote-resources-plugin:1.5:process 
(process-resource-bundles) @ commons-io ---
   [INFO]
   [INFO] --- buildnumber-maven-plugin:1.4:create (default) @ commons-io ---
   [INFO] Executing: cmd.exe /X /C "git rev-parse --verify HEAD"
   [INFO] Working directory: D:\workspace\commons-io
   [INFO] Storing buildNumber: 73dc0ff3e6d79ab88f1ed0d253d52cb6da0dffa5 at 
timestamp: 1591034434847
   [INFO] Storing buildScmBranch: refine_contentEquals
   [INFO]
   [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ 
commons-io ---
   [INFO] Using 'iso-8859-1' encoding to copy filtered resources.
   [INFO] skip non existing resourceDirectory 
D:\workspace\commons-io\src\main\resources
   [INFO] Copying 2 resources to META-INF
   [INFO]
   [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ 
commons-io ---
   [INFO] Changes detected - recompiling the module!
   [INFO] Compiling 158 source files to D:\workspace\commons-io\target\classes
   [INFO] 
/D:/workspace/commons-io/src/main/java/org/apache/commons/io/input/ClassLoaderObjectInputStream.java:
 Some input files use or override a deprecated API.
   [INFO] 
/D:/workspace/commons-io/src/main/java/org/apache/commons/io/input/ClassLoaderObjectInputStream.java:
 Recompile with -Xlint:deprecation for details.
   [INFO] 
/D:/workspace/commons-io/src/main/java/org/apache/commons/io/IOExceptionList.java:
 D:\workspace\commons-io\src\main\java\org\apache\commons\io\IOException
   List.java uses unchecked or unsafe operations.
   [INFO] 
/D:/workspace/commons-io/src/main/java/org/apache/commons/io/IOExceptionList.java:
 Recompile with -Xlint:unchecked for details.
   [INFO]
   [INFO] --- maven-bundle-plugin:4.2.1:manifest (bundle-manifest) @ commons-io 
---
   [INFO]
   [INFO] --- animal-sniffer-maven-plugin:1.18:check (checkAPIcompatibility) @ 
commons-io ---
   [INFO] Checking unresolved references to 
org.codehaus.mojo.signature:java18:1.0
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\TeeReader.java:158:
 Covariant return type change detected: java.nio.Buffer java.nio.Char
   Buffer.position(int) has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.position(int)
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\TeeReader.java:158:
 Covariant return type change detected: java.nio.Buffer java.nio.Char
   Buffer.limit(int) has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.limit(int)
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\TeeReader.java:162:
 Covariant return type change detected: java.nio.Buffer java.nio.Char
   Buffer.position(int) has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.position(int)
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\TeeReader.java:162:
 Covariant return type change detected: java.nio.Buffer java.nio.Char
   Buffer.limit(int) has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.limit(int)
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\TeeReader.java:162:
 Covariant return type change detected: java.nio.Buffer java.nio.Char
   Buffer.position(int) has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.position(int)
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\TeeReader.java:162:
 Covariant return type change detected: java.nio.Buffer java.nio.Char
   Buffer.limit(int) has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.limit(int)
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\ReaderInputStream.java:125:
 Covariant return type change detected: java.nio.Buffer java.
   nio.CharBuffer.flip() has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.flip()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\ReaderInputStream.java:127:
 Covariant return type change detected: java.nio.Buffer java.
   nio.ByteBuffer.flip() has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.flip()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\ReaderInputStream.java:207:
 Covariant return type change detected: java.nio.Buffer java.
   nio.CharBuffer.position(int) has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.position(int)
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\ReaderInputStream.java:209:
 Covariant return type change detected: java.nio.Buffer java.
   nio.CharBuffer.flip() has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.flip()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\ReaderInputStream.java:213:
 Covariant return type change detected: java.nio.Buffer java.
   nio.ByteBuffer.flip() has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.flip()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\CharSequenceInputStream.java:74:
 Covariant return type change detected: java.nio.Buffer
   java.nio.ByteBuffer.flip() has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.flip()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\CharSequenceInputStream.java:128:
 Covariant return type change detected: java.nio.Buffer
    java.nio.ByteBuffer.flip() has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.flip()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\CharSequenceInputStream.java:222:
 Covariant return type change detected: java.nio.Buffer
    java.nio.CharBuffer.mark() has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.mark()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\CharSequenceInputStream.java:223:
 Covariant return type change detected: java.nio.Buffer
    java.nio.ByteBuffer.mark() has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.mark()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\CharSequenceInputStream.java:245:
 Covariant return type change detected: java.nio.Buffer
    java.nio.CharBuffer.rewind() has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.rewind()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\CharSequenceInputStream.java:246:
 Covariant return type change detected: java.nio.Buffer
    java.nio.ByteBuffer.rewind() has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.rewind()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\CharSequenceInputStream.java:247:
 Covariant return type change detected: java.nio.Buffer
    java.nio.ByteBuffer.limit(int) has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.limit(int)
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\CharSequenceInputStream.java:249:
 Covariant return type change detected: java.nio.Buffer
    java.nio.ByteBuffer.rewind() has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.rewind()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\CharSequenceInputStream.java:250:
 Covariant return type change detected: java.nio.Buffer
    java.nio.ByteBuffer.limit(int) has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.limit(int)
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\input\CharSequenceInputStream.java:258:
 Covariant return type change detected: java.nio.Buffer
    java.nio.ByteBuffer.position(int) has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.position(int)
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\output\WriterOutputStream.java:283:
 Covariant return type change detected: java.nio.Buffer jav
   a.nio.ByteBuffer.flip() has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.flip()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\output\WriterOutputStream.java:309:
 Covariant return type change detected: java.nio.Buffer jav
   a.nio.CharBuffer.rewind() has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.rewind()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\output\WriterOutputStream.java:331:
 Covariant return type change detected: java.nio.Buffer jav
   a.nio.ByteBuffer.flip() has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.flip()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\output\WriterOutputStream.java:340:
 Covariant return type change detected: java.nio.Buffer jav
   a.nio.CharBuffer.rewind() has been changed to java.nio.CharBuffer 
java.nio.CharBuffer.rewind()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\IOUtils.java:987: 
Covariant return type change detected: java.nio.Buffer java.nio.CharBuffer.f
   lip() has been changed to java.nio.CharBuffer java.nio.CharBuffer.flip()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\IOUtils.java:2008: 
Covariant return type change detected: java.nio.Buffer java.nio.ByteBuffer.
   position(int) has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.position(int)
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\IOUtils.java:2009: 
Covariant return type change detected: java.nio.Buffer java.nio.ByteBuffer.
   limit(int) has been changed to java.nio.ByteBuffer 
java.nio.ByteBuffer.limit(int)
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\FileUtils.java:1094:
 Covariant return type change detected: java.nio.Buffer java.nio.ByteBuffe
   r.flip() has been changed to java.nio.ByteBuffer java.nio.ByteBuffer.flip()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\FileUtils.java:1096:
 Covariant return type change detected: java.nio.Buffer java.nio.ByteBuffe
   r.clear() has been changed to java.nio.ByteBuffer java.nio.ByteBuffer.clear()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\FileUtils.java:1094:
 Covariant return type change detected: java.nio.Buffer java.nio.ByteBuffe
   r.flip() has been changed to java.nio.ByteBuffer java.nio.ByteBuffer.flip()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\FileUtils.java:1096:
 Covariant return type change detected: java.nio.Buffer java.nio.ByteBuffe
   r.clear() has been changed to java.nio.ByteBuffer java.nio.ByteBuffer.clear()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\FileUtils.java:1094:
 Covariant return type change detected: java.nio.Buffer java.nio.ByteBuffe
   r.flip() has been changed to java.nio.ByteBuffer java.nio.ByteBuffer.flip()
   [INFO] 
D:\workspace\commons-io\src\main\java\org\apache\commons\io\FileUtils.java:1096:
 Covariant return type change detected: java.nio.Buffer java.nio.ByteBuffe
   r.clear() has been changed to java.nio.ByteBuffer java.nio.ByteBuffer.clear()
   [INFO]
   [INFO] --- maven-resources-plugin:3.1.0:testResources 
(default-testResources) @ commons-io ---
   [INFO] Using 'iso-8859-1' encoding to copy filtered resources.
   [INFO] Copying 45 resources
   [INFO] Copying 2 resources to META-INF
   [INFO]
   [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ 
commons-io ---
   [INFO] Changes detected - recompiling the module!
   [INFO] Compiling 158 source files to 
D:\workspace\commons-io\target\test-classes
   [INFO] 
/D:/workspace/commons-io/src/test/java/org/apache/commons/io/output/FileWriterWithEncodingTest.java:
 Some input files use or override a deprecated API.
   [INFO] 
/D:/workspace/commons-io/src/test/java/org/apache/commons/io/output/FileWriterWithEncodingTest.java:
 Recompile with -Xlint:deprecation for details.
   [INFO]
   [INFO] --- jacoco-maven-plugin:0.8.5:prepare-agent (prepare-agent) @ 
commons-io ---
   [INFO] argLine set to 
-javaagent:C:\\Users\\xenoa\\.m2\\repository\\org\\jacoco\\org.jacoco.agent\\0.8.5\\org.jacoco.agent-0.8.5-runtime.jar=destfile=D:\\workspa
   ce\\commons-io\\target\\jacoco.exec
   [INFO]
   [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ commons-io ---
   [INFO] Tests are skipped.
   [INFO]
   [INFO] --- exec-maven-plugin:1.6.0:exec (benchmark) @ commons-io ---
   WARNING: An illegal reflective access operation has occurred
   WARNING: Illegal reflective access by org.openjdk.jmh.util.Utils 
(file:/C:/Users/xenoa/.m2/repository/org/openjdk/jmh/jmh-core/1.21/jmh-core-1.21.jar)
 to field j
   ava.io.PrintStream.charOut
   WARNING: Please consider reporting this to the maintainers of 
org.openjdk.jmh.util.Utils
   WARNING: Use --illegal-access=warn to enable warnings of further illegal 
reflective access operations
   WARNING: All illegal access operations will be denied in a future release
   # JMH version: 1.21
   # VM version: JDK 13.0.2, OpenJDK 64-Bit Server VM, 13.0.2+8
   # VM invoker: C:\jdk-13.0.2+8\bin\java.exe
   # VM options: <none>
   # Warmup: 5 iterations, 10 s each
   # Measurement: 5 iterations, 10 s each
   # Timeout: 10 min per iteration
   # Threads: 1 thread, will synchronize iterations
   # Benchmark mode: Average time, time/op
   # Benchmark: 
org.apache.commons.io.performance.IOUtilsContentEqualsPerformanceTest.testContentEqualsForFileNew
   
   # Run progress: 0.00% complete, ETA 00:33:20
   # Fork: 1 of 5
   # Warmup Iteration   1: 8403699.664 ns/op
   # Warmup Iteration   2: 8342097.081 ns/op
   # Warmup Iteration   3: 7431033.061 ns/op
   # Warmup Iteration   4: 7714089.746 ns/op
   # Warmup Iteration   5: 7338344.241 ns/op
   Iteration   1: 7459707.308 ns/op
   Iteration   2: 8792593.849 ns/op
   Iteration   3: 10726891.104 ns/op
   Iteration   4: 8550254.786 ns/op
   Iteration   5: 8001410.312 ns/op
   
   # Run progress: 5.00% complete, ETA 00:31:55
   # Fork: 2 of 5
   # Warmup Iteration   1: 7848885.804 ns/op
   # Warmup Iteration   2: 7489775.075 ns/op
   # Warmup Iteration   3: 7328874.652 ns/op
   # Warmup Iteration   4: 7308097.663 ns/op
   # Warmup Iteration   5: 7298969.001 ns/op
   Iteration   1: 7347818.649 ns/op
   Iteration   2: 7251497.464 ns/op
   Iteration   3: 7366967.231 ns/op
   Iteration   4: 7420473.516 ns/op
   Iteration   5: 7517702.630 ns/op
   
   # Run progress: 10.00% complete, ETA 00:30:14
   # Fork: 3 of 5
   # Warmup Iteration   1: 7403000.592 ns/op
   # Warmup Iteration   2: 7237561.577 ns/op
   # Warmup Iteration   3: 7328035.212 ns/op
   # Warmup Iteration   4: 7310369.686 ns/op
   # Warmup Iteration   5: 7258066.255 ns/op
   Iteration   1: 7387172.526 ns/op
   Iteration   2: 7278674.400 ns/op
   Iteration   3: 7307894.887 ns/op
   Iteration   4: 7363340.103 ns/op
   Iteration   5: 7241780.811 ns/op
   
   # Run progress: 15.00% complete, ETA 00:28:33
   # Fork: 4 of 5
   # Warmup Iteration   1: 7549794.264 ns/op
   # Warmup Iteration   2: 7209186.671 ns/op
   # Warmup Iteration   3: 7680527.859 ns/op
   # Warmup Iteration   4: 7870276.336 ns/op
   # Warmup Iteration   5: 8008019.376 ns/op
   Iteration   1: 7868122.956 ns/op
   Iteration   2: 8014526.603 ns/op
   Iteration   3: 7610742.998 ns/op
   Iteration   4: 7339908.804 ns/op
   Iteration   5: 7466605.970 ns/op
   
   # Run progress: 20.00% complete, ETA 00:26:52
   # Fork: 5 of 5
   # Warmup Iteration   1: 8062262.933 ns/op
   # Warmup Iteration   2: 7888885.647 ns/op
   # Warmup Iteration   3: 8092374.353 ns/op
   # Warmup Iteration   4: 7535815.813 ns/op
   # Warmup Iteration   5: 8376873.032 ns/op
   Iteration   1: 7641931.603 ns/op
   Iteration   2: 8134969.268 ns/op
   Iteration   3: 8823474.603 ns/op
   Iteration   4: 9548556.489 ns/op
   Iteration   5: 8888150.622 ns/op
   
   
   Result 
"org.apache.commons.io.performance.IOUtilsContentEqualsPerformanceTest.testContentEqualsForFileNew":
     7934046.780 ?99.9%) 644395.868 ns/op [Average]
   
     (min, avg, max) = (7241780.811, 7934046.780, 10726891.104), stdev = 
860250.047
     CI (99.9%): [7289650.912, 8578442.648] (assumes normal distribution)
   
   
   # JMH version: 1.21
   # VM version: JDK 13.0.2, OpenJDK 64-Bit Server VM, 13.0.2+8
   # VM invoker: C:\jdk-13.0.2+8\bin\java.exe
   # VM options: <none>
   # Warmup: 5 iterations, 10 s each
   # Measurement: 5 iterations, 10 s each
   # Timeout: 10 min per iteration
   # Threads: 1 thread, will synchronize iterations
   # Benchmark mode: Average time, time/op
   # Benchmark: 
org.apache.commons.io.performance.IOUtilsContentEqualsPerformanceTest.testContentEqualsNew2
   
   # Run progress: 25.00% complete, ETA 00:25:12
   # Fork: 1 of 5
   # Warmup Iteration   1: 427439412.500 ns/op
   # Warmup Iteration   2: 411941108.000 ns/op
   # Warmup Iteration   3: 415405856.000 ns/op
   # Warmup Iteration   4: 408246064.000 ns/op
   # Warmup Iteration   5: 381986007.407 ns/op
   Iteration   1: 372559803.704 ns/op
   Iteration   2: 372221244.444 ns/op
   Iteration   3: 394561276.923 ns/op
   Iteration   4: 410318660.000 ns/op
   Iteration   5: 417270562.500 ns/op
   
   # Run progress: 30.00% complete, ETA 00:23:36
   # Fork: 2 of 5
   # Warmup Iteration   1: 385519323.077 ns/op
   # Warmup Iteration   2: 341417310.000 ns/op
   # Warmup Iteration   3: 337620636.667 ns/op
   # Warmup Iteration   4: 337741280.000 ns/op
   # Warmup Iteration   5: 322947274.194 ns/op
   Iteration   1: 334579670.000 ns/op
   Iteration   2: 324313664.516 ns/op
   Iteration   3: 349864203.448 ns/op
   Iteration   4: 345000172.414 ns/op
   Iteration   5: 338797430.000 ns/op
   
   # Run progress: 35.00% complete, ETA 00:21:56
   # Fork: 3 of 5
   # Warmup Iteration   1: 424080325.000 ns/op
   # Warmup Iteration   2: 409074288.000 ns/op
   # Warmup Iteration   3: 397216476.923 ns/op
   # Warmup Iteration   4: 379384881.481 ns/op
   # Warmup Iteration   5: 406599224.000 ns/op
   Iteration   1: 344006786.667 ns/op
   Iteration   2: 318393962.500 ns/op
   Iteration   3: 326383164.516 ns/op
   Iteration   4: 326728512.903 ns/op
   Iteration   5: 339791536.667 ns/op
   
   # Run progress: 40.00% complete, ETA 00:20:17
   # Fork: 4 of 5
   # Warmup Iteration   1: 359791750.000 ns/op
   # Warmup Iteration   2: 344011470.000 ns/op
   # Warmup Iteration   3: 317443868.750 ns/op
   # Warmup Iteration   4: 366668921.429 ns/op
   # Warmup Iteration   5: 340980226.667 ns/op
   Iteration   1: 362224464.286 ns/op
   Iteration   2: 329631980.645 ns/op
   Iteration   3: 328959990.323 ns/op
   Iteration   4: 331093680.645 ns/op
   Iteration   5: 328042438.710 ns/op
   
   # Run progress: 45.00% complete, ETA 00:18:37
   # Fork: 5 of 5
   # Warmup Iteration   1: 328533070.968 ns/op
   # Warmup Iteration   2: 321877478.125 ns/op
   # Warmup Iteration   3: 315723571.875 ns/op
   # Warmup Iteration   4: 323838003.226 ns/op
   # Warmup Iteration   5: 325582848.387 ns/op
   Iteration   1: 322872964.516 ns/op
   Iteration   2: 320972165.625 ns/op
   Iteration   3: 322146753.125 ns/op
   Iteration   4: 320983556.250 ns/op
   Iteration   5: 332471216.129 ns/op
   
   
   Result 
"org.apache.commons.io.performance.IOUtilsContentEqualsPerformanceTest.testContentEqualsNew2":
     344567594.458 ?99.9%) 21104733.591 ns/op [Average]
   
     (min, avg, max) = (318393962.500, 344567594.458, 417270562.500), stdev = 
28174215.532
     CI (99.9%): [323462860.868, 365672328.049] (assumes normal distribution)
   
   
   # JMH version: 1.21
   # VM version: JDK 13.0.2, OpenJDK 64-Bit Server VM, 13.0.2+8
   # VM invoker: C:\jdk-13.0.2+8\bin\java.exe
   # VM options: <none>
   # Warmup: 5 iterations, 10 s each
   # Measurement: 5 iterations, 10 s each
   # Timeout: 10 min per iteration
   # Threads: 1 thread, will synchronize iterations
   # Benchmark mode: Average time, time/op
   # Benchmark: 
org.apache.commons.io.performance.IOUtilsContentEqualsPerformanceTest.testContentEqualsOld
   
   # Run progress: 50.00% complete, ETA 00:16:57
   # Fork: 1 of 5
   # Warmup Iteration   1: 8040772.910 ns/op
   # Warmup Iteration   2: 7850546.468 ns/op
   # Warmup Iteration   3: 8366507.191 ns/op
   # Warmup Iteration   4: 8919272.193 ns/op
   # Warmup Iteration   5: 8934492.411 ns/op
   Iteration   1: 9849140.059 ns/op
   Iteration   2: 10280016.496 ns/op
   Iteration   3: 9377572.540 ns/op
   Iteration   4: 8634857.550 ns/op
   Iteration   5: 8796502.111 ns/op
   
   # Run progress: 55.00% complete, ETA 00:15:14
   # Fork: 2 of 5
   # Warmup Iteration   1: 9196890.441 ns/op
   # Warmup Iteration   2: 8651530.769 ns/op
   # Warmup Iteration   3: 9130613.504 ns/op
   # Warmup Iteration   4: 9528571.075 ns/op
   # Warmup Iteration   5: 8603469.046 ns/op
   Iteration   1: 8649056.612 ns/op
   Iteration   2: 8740562.707 ns/op
   Iteration   3: 8636735.807 ns/op
   Iteration   4: 8658414.545 ns/op
   Iteration   5: 9077745.554 ns/op
   
   # Run progress: 60.00% complete, ETA 00:13:32
   # Fork: 3 of 5
   # Warmup Iteration   1: 9210640.074 ns/op
   # Warmup Iteration   2: 7950668.124 ns/op
   # Warmup Iteration   3: 8049352.132 ns/op
   # Warmup Iteration   4: 7906520.949 ns/op
   # Warmup Iteration   5: 8193835.545 ns/op
   Iteration   1: 7833574.706 ns/op
   Iteration   2: 8025837.640 ns/op
   Iteration   3: 8621776.034 ns/op
   Iteration   4: 8516147.915 ns/op
   Iteration   5: 8379908.710 ns/op
   
   # Run progress: 65.00% complete, ETA 00:11:50
   # Fork: 4 of 5
   # Warmup Iteration   1: 8810415.141 ns/op
   # Warmup Iteration   2: 8794569.859 ns/op
   # Warmup Iteration   3: 8730751.745 ns/op
   # Warmup Iteration   4: 8563348.202 ns/op
   # Warmup Iteration   5: 8946487.757 ns/op
   Iteration   1: 8798953.725 ns/op
   Iteration   2: 9077297.461 ns/op
   Iteration   3: 9203544.250 ns/op
   Iteration   4: 10801144.492 ns/op
   Iteration   5: 10137045.694 ns/op
   
   # Run progress: 70.00% complete, ETA 00:10:09
   # Fork: 5 of 5
   # Warmup Iteration   1: 10034710.933 ns/op
   # Warmup Iteration   2: 7852066.954 ns/op
   # Warmup Iteration   3: 8036246.265 ns/op
   # Warmup Iteration   4: 8208804.184 ns/op
   # Warmup Iteration   5: 8919215.241 ns/op
   Iteration   1: 7703625.019 ns/op
   Iteration   2: 8173784.069 ns/op
   Iteration   3: 8476930.000 ns/op
   Iteration   4: 9254641.073 ns/op
   Iteration   5: 8732920.419 ns/op
   
   
   Result 
"org.apache.commons.io.performance.IOUtilsContentEqualsPerformanceTest.testContentEqualsOld":
     8897509.408 ?99.9%) 558227.023 ns/op [Average]
   
     (min, avg, max) = (7703625.019, 8897509.408, 10801144.492), stdev = 
745217.105
     CI (99.9%): [8339282.385, 9455736.431] (assumes normal distribution)
   
   
   # JMH version: 1.21
   # VM version: JDK 13.0.2, OpenJDK 64-Bit Server VM, 13.0.2+8
   # VM invoker: C:\jdk-13.0.2+8\bin\java.exe
   # VM options: <none>
   # Warmup: 5 iterations, 10 s each
   # Measurement: 5 iterations, 10 s each
   # Timeout: 10 min per iteration
   # Threads: 1 thread, will synchronize iterations
   # Benchmark mode: Average time, time/op
   # Benchmark: 
org.apache.commons.io.performance.IOUtilsContentEqualsPerformanceTest.testContentEqualsOld2
   
   # Run progress: 75.00% complete, ETA 00:08:27
   # Fork: 1 of 5
   # Warmup Iteration   1: 2274597420.000 ns/op
   # Warmup Iteration   2: 2161414140.000 ns/op
   # Warmup Iteration   3: 2060648900.000 ns/op
   # Warmup Iteration   4: 2034553880.000 ns/op
   # Warmup Iteration   5: 2036716060.000 ns/op
   Iteration   1: 2039811500.000 ns/op
   Iteration   2: 2029332780.000 ns/op
   Iteration   3: 2048828760.000 ns/op
   Iteration   4: 2167898680.000 ns/op
   Iteration   5: 2375598240.000 ns/op
   
   # Run progress: 80.00% complete, ETA 00:06:47
   # Fork: 2 of 5
   # Warmup Iteration   1: 2302730460.000 ns/op
   # Warmup Iteration   2: 2169550200.000 ns/op
   # Warmup Iteration   3: 2183069220.000 ns/op
   # Warmup Iteration   4: 2219912760.000 ns/op
   # Warmup Iteration   5: 2276130160.000 ns/op
   Iteration   1: 2256782140.000 ns/op
   Iteration   2: 2212519940.000 ns/op
   Iteration   3: 2194957540.000 ns/op
   Iteration   4: 2139474860.000 ns/op
   Iteration   5: 2239168680.000 ns/op
   
   # Run progress: 85.00% complete, ETA 00:05:07
   # Fork: 3 of 5
   # Warmup Iteration   1: 2871005625.000 ns/op
   # Warmup Iteration   2: 2234621780.000 ns/op
   # Warmup Iteration   3: 2057113240.000 ns/op
   # Warmup Iteration   4: 2106691240.000 ns/op
   # Warmup Iteration   5: 2239427440.000 ns/op
   Iteration   1: 2221194720.000 ns/op
   Iteration   2: 2252754040.000 ns/op
   Iteration   3: 2362948520.000 ns/op
   Iteration   4: 2233297260.000 ns/op
   Iteration   5: 2289872180.000 ns/op
   
   # Run progress: 90.00% complete, ETA 00:03:25
   # Fork: 4 of 5
   # Warmup Iteration   1: 2316297000.000 ns/op
   # Warmup Iteration   2: 2186447840.000 ns/op
   # Warmup Iteration   3: 2186496100.000 ns/op
   # Warmup Iteration   4: 2210486500.000 ns/op
   # Warmup Iteration   5: 2248586640.000 ns/op
   Iteration   1: 2228412480.000 ns/op
   Iteration   2: 2293236620.000 ns/op
   Iteration   3: 2300933160.000 ns/op
   Iteration   4: 2050526440.000 ns/op
   Iteration   5: 2103876620.000 ns/op
   
   # Run progress: 95.00% complete, ETA 00:01:43
   # Fork: 5 of 5
   # Warmup Iteration   1: 2231988940.000 ns/op
   # Warmup Iteration   2: 2132075180.000 ns/op
   # Warmup Iteration   3: 2107424340.000 ns/op
   # Warmup Iteration   4: 2244625860.000 ns/op
   # Warmup Iteration   5: 2212587240.000 ns/op
   Iteration   1: 2358689240.000 ns/op
   Iteration   2: 2360920240.000 ns/op
   Iteration   3: 2304193360.000 ns/op
   Iteration   4: 2120541520.000 ns/op
   Iteration   5: 2225049120.000 ns/op
   
   
   Result 
"org.apache.commons.io.performance.IOUtilsContentEqualsPerformanceTest.testContentEqualsOld2":
     2216432745.600 ?99.9%) 79521556.878 ns/op [Average]
   
     (min, avg, max) = (2029332780.000, 2216432745.600, 2375598240.000), stdev 
= 106159003.301
     CI (99.9%): [2136911188.722, 2295954302.478] (assumes normal distribution)
   
   
   # Run complete. Total time: 00:34:37
   
   REMEMBER: The numbers below are just data. To gain reusable insights, you 
need to follow up on
   why the numbers are the way they are. Use profilers (see -prof, -lprof), 
design factorial
   experiments, perform baseline and negative tests that provide experimental 
control, make sure
   the benchmarking environment is safe on JVM/OS/HW level, ask for reviews 
from the domain experts.
   Do not assume the numbers tell you what you want them to tell.
   
   Benchmark                                                        Mode  Cnt   
        Score          Error  Units
   IOUtilsContentEqualsPerformanceTest.testContentEqualsForFileNew  avgt   25   
  7934046.780 ?  644395.868  ns/op
   
   IOUtilsContentEqualsPerformanceTest.testContentEqualsNew2        avgt   25   
344567594.458 ?21104733.591  ns/op
   
   IOUtilsContentEqualsPerformanceTest.testContentEqualsOld         avgt   25   
  8897509.408 ?  558227.023  ns/op
   
   IOUtilsContentEqualsPerformanceTest.testContentEqualsOld2        avgt   25  
2216432745.600 ?79521556.878  ns/op
   
   
   Benchmark result is saved to target/jmh-result.org.apache.json
   [INFO]
   [INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ commons-io ---
   [INFO] Building jar: 
D:\workspace\commons-io\target\commons-io-2.7.1-SNAPSHOT.jar
   [INFO]
   [INFO] --- maven-site-plugin:3.8.2:attach-descriptor (attach-descriptor) @ 
commons-io ---
   [INFO] Skipping because packaging 'jar' is not pom.
   [INFO]
   [INFO] --- maven-jar-plugin:3.2.0:test-jar (default) @ commons-io ---
   [INFO] Building jar: 
D:\workspace\commons-io\target\commons-io-2.7.1-SNAPSHOT-tests.jar
   [INFO]
   [INFO] --- maven-source-plugin:3.2.0:jar-no-fork (create-source-jar) @ 
commons-io ---
   [INFO] Building jar: 
D:\workspace\commons-io\target\commons-io-2.7.1-SNAPSHOT-sources.jar
   [INFO]
   [INFO] --- maven-source-plugin:3.2.0:test-jar-no-fork (create-source-jar) @ 
commons-io ---
   [INFO] Building jar: 
D:\workspace\commons-io\target\commons-io-2.7.1-SNAPSHOT-test-sources.jar
   [INFO]
   [INFO] --- jacoco-maven-plugin:0.8.5:check (check) @ commons-io ---
   [INFO] Skipping JaCoCo execution due to missing execution data 
file:D:\workspace\commons-io\target\jacoco.exec
   [INFO]
   [INFO] --- apache-rat-plugin:0.13:check (default-cli) @ commons-io ---
   [INFO] Enabled default license matchers.
   [INFO] Will parse SCM ignores for exclusions...
   [INFO] Parsing exclusions from D:\workspace\commons-io\.gitignore
   [INFO] Finished adding exclusions from SCM ignore files.
   [INFO] 73 implicit excludes (use -debug for more details).
   [INFO] 12 explicit excludes (use -debug for more details).
   [INFO] 373 resources included (use -debug for more details)
   [INFO] Rat check: Summary over all files. Unapproved: 0, unknown: 0, 
generated: 0, approved: 364 licenses.
   [INFO]
   [INFO] >>> clirr-maven-plugin:2.8:check (default-cli) > compile @ commons-io 
>>>
   [INFO]
   [INFO] --- maven-enforcer-plugin:3.0.0-M2:enforce (enforce-maven-version) @ 
commons-io ---
   [INFO]
   [INFO] --- maven-enforcer-plugin:3.0.0-M2:enforce (enforce-maven-3) @ 
commons-io ---
   [INFO]
   [INFO] --- apache-rat-plugin:0.13:check (rat-check) @ commons-io ---
   [INFO] Enabled default license matchers.
   [INFO] Will parse SCM ignores for exclusions...
   [INFO] Parsing exclusions from D:\workspace\commons-io\.gitignore
   [INFO] Finished adding exclusions from SCM ignore files.
   [INFO] 73 implicit excludes (use -debug for more details).
   [INFO] 12 explicit excludes (use -debug for more details).
   [INFO] 373 resources included (use -debug for more details)
   [INFO] Rat check: Summary over all files. Unapproved: 0, unknown: 0, 
generated: 0, approved: 364 licenses.
   [INFO]
   [INFO] --- build-helper-maven-plugin:3.0.0:parse-version (parse-version) @ 
commons-io ---
   [INFO]
   [INFO] --- maven-antrun-plugin:1.8:run (javadoc.resources) @ commons-io ---
   [INFO] Executing tasks
   
   main:
   [INFO] Executed tasks
   [INFO]
   [INFO] --- maven-remote-resources-plugin:1.5:process 
(process-resource-bundles) @ commons-io ---
   [INFO]
   [INFO] --- buildnumber-maven-plugin:1.4:create (default) @ commons-io ---
   [INFO] Executing: cmd.exe /X /C "git rev-parse --verify HEAD"
   [INFO] Working directory: D:\workspace\commons-io
   [INFO] Storing buildNumber: 73dc0ff3e6d79ab88f1ed0d253d52cb6da0dffa5 at 
timestamp: 1591036535724
   [INFO] Storing buildScmBranch: refine_contentEquals
   [INFO]
   [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ 
commons-io ---
   [INFO] Using 'iso-8859-1' encoding to copy filtered resources.
   [INFO] skip non existing resourceDirectory 
D:\workspace\commons-io\src\main\resources
   [INFO] Copying 2 resources to META-INF
   [INFO]
   [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ 
commons-io ---
   [INFO] Changes detected - recompiling the module!
   [INFO] Compiling 158 source files to D:\workspace\commons-io\target\classes
   [INFO] 
/D:/workspace/commons-io/src/main/java/org/apache/commons/io/input/ClassLoaderObjectInputStream.java:
 Some input files use or override a deprecated API.
   [INFO] 
/D:/workspace/commons-io/src/main/java/org/apache/commons/io/input/ClassLoaderObjectInputStream.java:
 Recompile with -Xlint:deprecation for details.
   [INFO] 
/D:/workspace/commons-io/src/main/java/org/apache/commons/io/IOExceptionList.java:
 D:\workspace\commons-io\src\main\java\org\apache\commons\io\IOException
   List.java uses unchecked or unsafe operations.
   [INFO] 
/D:/workspace/commons-io/src/main/java/org/apache/commons/io/IOExceptionList.java:
 Recompile with -Xlint:unchecked for details.
   [INFO]
   [INFO] <<< clirr-maven-plugin:2.8:check (default-cli) < compile @ commons-io 
<<<
   [INFO]
   [INFO]
   [INFO] --- clirr-maven-plugin:2.8:check (default-cli) @ commons-io ---
   [INFO] Comparing to version: 2.7
   [INFO] Succeeded with 0 errors; 0 warnings; and 0 other changes.
   [INFO]
   [INFO] --- maven-checkstyle-plugin:3.1.0:check (default-cli) @ commons-io ---
   [INFO]
   [INFO] >>> maven-javadoc-plugin:3.1.1:javadoc (default-cli) > 
generate-sources @ commons-io >>>
   [INFO]
   [INFO] --- maven-enforcer-plugin:3.0.0-M2:enforce (enforce-maven-version) @ 
commons-io ---
   [INFO]
   [INFO] --- maven-enforcer-plugin:3.0.0-M2:enforce (enforce-maven-3) @ 
commons-io ---
   [INFO]
   [INFO] --- apache-rat-plugin:0.13:check (rat-check) @ commons-io ---
   [INFO] Enabled default license matchers.
   [INFO] Will parse SCM ignores for exclusions...
   [INFO] Parsing exclusions from D:\workspace\commons-io\.gitignore
   [INFO] Finished adding exclusions from SCM ignore files.
   [INFO] 73 implicit excludes (use -debug for more details).
   [INFO] 12 explicit excludes (use -debug for more details).
   [INFO] 373 resources included (use -debug for more details)
   [INFO] Rat check: Summary over all files. Unapproved: 0, unknown: 0, 
generated: 0, approved: 364 licenses.
   [INFO]
   [INFO] --- build-helper-maven-plugin:3.0.0:parse-version (parse-version) @ 
commons-io ---
   [INFO]
   [INFO] --- maven-antrun-plugin:1.8:run (javadoc.resources) @ commons-io ---
   [INFO] Executing tasks
   
   main:
   [INFO] Executed tasks
   [INFO]
   [INFO] <<< maven-javadoc-plugin:3.1.1:javadoc (default-cli) < 
generate-sources @ commons-io <<<
   [INFO]
   [INFO]
   [INFO] --- maven-javadoc-plugin:3.1.1:javadoc (default-cli) @ commons-io ---
   [INFO] 
------------------------------------------------------------------------
   [INFO] BUILD SUCCESS
   [INFO] 
------------------------------------------------------------------------
   [INFO] Total time:  35:31 min
   [INFO] Finished at: 2020-06-02T02:35:59+08:00
   [INFO] 
------------------------------------------------------------------------
   ```


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to