IndexOf with Char instead of String

Otávio Gonçalves de Santana otaviojava at java.net
Mon Jan 12 22:23:35 UTC 2015


These String literals may be replaced by equivalent character literals[1],
gaining some performance enhancement.

Webrev:
https://dl.dropboxusercontent.com/u/16109193/open_jdk/jdk/index_of_character/index.html


[1]
@State(Scope.Thread)
@OutputTimeUnit(TimeUnit.SECONDS)
public class IndexOfBenchmark {

    private static final String WORDS = "I love java Language 8 because has
Lambda, Stream and MetaSpace";

    @Param("10000")
    private int param;

    @GenerateMicroBenchmark
    public void indexOfString(BlackHole bh) {

        for (int i = 0; i <= param; i++) {
            int index = WORDS.indexOf(",");
            bh.consume(index);
        }
    }

    @GenerateMicroBenchmark
    public void indexOfChar(BlackHole bh) {

        for (int i = 0; i <= param; i++) {
            int index = WORDS.indexOf(',');
            bh.consume(index);
        }
    }
}

Benchmark                           (param)   Mode   Samples         Mean
Mean error    Units
m.IndexOfBenchmark.indexOfChar        10000  thrpt        10     5579.120
   114.179    ops/s
m.IndexOfBenchmark.indexOfString      10000  thrpt        10     4562.178
    46.751    ops/s

-- 
Otávio Gonçalves de Santana

blog:     http://otaviosantana.blogspot.com.br/
twitter: http://twitter.com/otaviojava
site:     *http://about.me/otaviojava <http://about.me/otaviojava>*
55 (11) 98255-3513
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 10350_updated.patch
Type: text/x-patch
Size: 54809 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/core-libs-dev/attachments/20150112/2e3d9d64/10350_updated.patch>


More information about the core-libs-dev mailing list