After comparing the APIs, we have thought about which of the two APIs has the faster split implementation. So I have build simple performance test for the two String split implementations. The result has surprised me. The StringUtils split method is in my test case much faster then the Guava Splitter split method.
Test setup is I generate 5000 random strings with a length of 10000. The test strings contains commas to split the strings in the test. I invoke the Apache common spilt method and the Guava Splitter with the same test data, the performance result is shown in the table bellow.
Test Runs | 1 | 2 | 3 | 4 |
Apache Common StringUtils.split(…) |
126 ms | 122 ms | 121 ms | 122 ms |
Google Guava splitter.split(…) |
352 ms | 350 ms | 346 ms | 349 ms |
Here the source of my simple performance test:
Why
Has anybody an idea why the Guava API in my test is slower then the StringUtils split method? I read that the Guava Splitter performance should be very good. Therefore, I am surprised about the result.
Here the dependencies I have used for the performance test: