Inicjalizacja statyczna Guava Charmatcher jest powolna

UPDATE: Wygląda na to, że mój 13.0.1 wywołuje kod z tego diffed CharMatchera.

http://code.google.com/p/guava-libraries/source/diff?spec=svn69ad96b719d7cd3d872a948d7454f17b816a21c2&r=464b0cfab7c3b6713c35e6f3ae7426542668c77b&format=side&path=/guava/src/com/google/common/base/CharMatcher.java

Wydaje mi się, że mam problem z Charmatcherem Guawy. Obecnie piszę niektóre testy JUnit i zauważam, że pierwszy test zajmuje trochę czasu (15+ sekund), ale wszystkie przyszłe testy są w przybliżeniu takie same (0,3 sekundy), przy czym większość testów przechodzi przez to samo kod.

Moja analiza kodu wskazała, że ​​winowajcą jest biblioteka Charmatcher w bibliotece Guava. Wygląda na to, że w CharMatcherze jest trochę statycznego kodu inicjującego, który może być prawdziwym powodem, dla którego trwa tak długo. Czy w jakiś sposób mogę wyłączyć lub zoptymalizować to zachowanie? Czy jest coś, czego brakuje mi na stronach wiki lub plikach pomocy?

Guava wersja 13.0.1, System: Linux 64, Eclipse 3.6.1

EDYCJA: Zbudowałem aplikację testową z następującym kodem:

import com.google.common.base.CharMatcher;

public class Main {
    public static void main(String[] args) {
        // Using system instead of stopwatch to isolate library.
        long startTime = System.currentTimeMillis();
        CharMatcher.is(' ');
        long endTime = System.currentTimeMillis();
        System.out.println("took " + String.valueOf(endTime-startTime) + " ms");

        startTime = System.currentTimeMillis();
        CharMatcher.is('d');
        endTime = System.currentTimeMillis();
        System.out.println("2nd took " + String.valueOf(endTime-startTime) + " ms");
    }
}

Spowodowało to następujące wyniki:

took 15945 ms
2nd took 0 ms

Uruchomiłem to w eclipse minus struktura JUnit i tylko biblioteka guava w google. Również spakowałem plik wykonywalny i otrzymałem podobne wyniki. Wrócę z drugą edycją po uruchomieniu przez niego profilera.

Dzięki za pomoc.

Edytuj 2: Wyniki profilowania:

Main.main(String[])                                                                  22,556 ms
com.google.common.base.CharMatcher.<clinit>()                                     22.556 ms                                    
    com.google.common.base.CharMatcher.precomputed()                                 22,550 ms                      
        com.google.common.base.Platform.precomputeCharMatcher(CharMatcher)           22,550 ms
            com.google.common.base.CharMatcher.precomputedInternal()                  22,550 ms
                com.google.common.base.CharMatcher.slowGetChars()                    13,638 ms
                com.google.common.base.CharMatcher.setBits(CharMatcher$LookupTable)  8,911 ms

questionAnswers(4)

yourAnswerToTheQuestion