Hi, On 2017-02-08 12:37, Alan Bateman wrote:
BuiltinClassLoader — 925 private ModuleReader moduleReaderFor(ModuleReference mref) { 926 return moduleToReader.computeIfAbsent(mref, m -> createModuleReader(m)); 927 } Use this:: createModuleReaderI'll defer to Claes on this, mostly because #classes triggered to load here is observable in startup tests.
From a startup perspective all alternatives are more or less equal here, and generally speaking a lambda and a method reference are equal
as long as they're both non-capturing. A detail I had missed here, though, is that the createModuleReader method could be made static to ensure the lambda is actually non-capturing (otherwise it'll unnecessarily allocate an object preserving this). So I'd make createModuleReader static and then pick and choose between m -> createModuleReader(m) and BuiltinClassLoader::createModuleReader Thanks! /Claes
