Looks like we can improve performance in this area. I've put together a testcase which exercises the ServiceLoader and keeps track of whether we're able to cache or not. https://bugs.openjdk.java.net/browse/JDK-8223260 http://cr.openjdk.java.net/~coffeys/webrev.8223260.v1/webrev/ regards, Sean.