Slow classloading after second start of equinox [message #1733447] |
Fri, 27 May 2016 15:00 |
Arnaud MERGEY Messages: 243 Registered: March 2010 Location: France |
Senior Member |
|
|
Hello,
I have an osgi application using groovy GStringTemplate in some layer
Since we moved to equinox mars we noticed a significant bootstrap performance issue after second start of the application.
meaning performances are normal at first start of the application, but very slow for other starts, until we clear work files created by equinox (.metadata, .plugins, ...), in order to simulate a fresh start.
It is very strang something done by equinox in its work files seems to change something in classloading making bootstrap performances of our application bad.
By monitoring the application the difference of time is spend in calling stack above.
What could explain classloading seems to be slow after the second start of equinox and what is the difference between the first time an equinox application is starting and other starts ?
We did not experienced this in previous equinox release (luna)
Quote:sun.nio.cs.UTF_8$Encoder.encode(char[], int, int, byte[])
java.lang.StringCoding$StringEncoder.encode(char[], int, int)
java.lang.StringCoding.encode(String, char[], int, int)
java.lang.String.getBytes(String)
java.io.UnixFileSystem.getLastModifiedTime(File)
java.io.File.lastModified()
java.util.zip.ZipFile.<init>(File, int, Charset)
java.util.zip.ZipFile.<init>(File, int)
java.util.zip.ZipFile.<init>(File)
org.eclipse.osgi.framework.util.SecureAction.getZipFile(File)
org.eclipse.osgi.storage.bundlefile.ZipBundleFile.basicOpen()
org.eclipse.osgi.storage.bundlefile.ZipBundleFile.getZipFile()
org.eclipse.osgi.storage.bundlefile.ZipBundleFile.checkedOpen()
org.eclipse.osgi.storage.bundlefile.ZipBundleFile.getEntry(String)
org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(String, ClasspathEntry, List)
org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(String, List)
org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(String)
org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(String)
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(String)
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(String, boolean)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(String, boolean)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(String)
org.eclipse.osgi.internal.loader.buddy.DependentPolicy.loadClass(String)
org.eclipse.osgi.internal.loader.buddy.PolicyHandler.doBuddyClassLoading(String)
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(String, boolean)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(String, boolean)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(String)
org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(String, boolean)
java.lang.ClassLoader.loadClass(String)
java.lang.Class.forName0(String, boolean, ClassLoader, Class)
java.lang.Class.forName(String)
groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createWithCustomLookup(Class, MetaClassRegistry)
groovy.lang.MetaClassRegistry$MetaClassCreationHandle.create(Class, MetaClassRegistry)
org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock()
org.codehaus.groovy.reflection.ClassInfo.getMetaClass()
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(Class)
org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(Class)
groovy.lang.GroovyObjectSupport.<init>()
groovy.lang.Closure.<init>(Object, Object)
groovy.tmp.templates.GStringTemplateScript87$_getTemplate_closure1$_closure4.<init>(Object, Object)
[Updated on: Fri, 27 May 2016 15:05] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04690 seconds