Journal Optimisation, microbenchmark et compilation Just In Time : quand 1 + 1 ne font pas 2

Posté par  (site web personnel, Mastodon) .
Étiquettes :
50
3
nov.
2017

Imaginons que j'aie une méthode à optimiser. Par exemple – sans intérêt réel – cette fonction qui génère une chaîne de 100 caractères aléatoires :

private static final Random RANDOM = new Random();
private static final char[] CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123465798".toCharArray();
private static final int ALPHABET_SIZE = CHARS.length;

private static String functionToMeasure() {
    final StringBuilder sb = new StringBuilder(100);
    for (int i = 0; i < 100;
(…)