Hi all, Thanks for your answers.
I've already stripped down the supported locale list to the only one needed. We still have two missed hit for each tried locale. The tapestry.file-check-interval doesn't help either. The file-check-interval is seems to be used only for existing files. I guess the decorator will do the trick. Thanks. Cheers, -- ChristianZen 2009/10/29 Ulrich Stärk <u...@spielviel.de>: > Doesn't limiting the supported locales to just the ones you support help? > > http://tapestry.apache.org/tapestry5.0/guide/conf.html > > Uli > > Am 29.10.2009 19:39 schrieb Christiansen Merel: >> >> Hello out there, >> >> We're running a quite busy website with tapestry 5.0.18 and we're >> hitting a performance problem with the ClasspathResource class. >> >> We're using classpath asset and none of them is localised. For each >> hit on a page using a classpath asset, we end having 2 missed queries >> on the ClassLoader for potential localized version of the asset. It >> does not really slow down the application throughput but we end with >> an __huge__ CPU consumption. >> >> The javacore stack shows numerous threads scanning jar files: >> >> 3XMTHREADINFO "[ACTIVE] ExecuteThread: '2' for queue: >> 'weblogic.kernel.Default (self-tuning)'" (TID:0x3700E400, >> sys_thread_t:0x3393D030, state:B, native ID:0x009AB0B3) prio=5 >> 4XESTACKTRACE at >> java/util/zip/ZipFile.getEntry(ZipFile.java:287(Compiled Code)) >> 4XESTACKTRACE at >> java/util/jar/JarFile.getEntry(JarFile.java:283(Compiled Code)) >> 4XESTACKTRACE at >> java/util/jar/JarFile.getJarEntry(JarFile.java:266(Compiled Code)) >> 4XESTACKTRACE at >> sun/misc/URLClassPath$JarLoader.getResource(URLClassPath.java:949(Compiled >> Code)) >> 4XESTACKTRACE at >> >> sun/misc/URLClassPath$JarLoader.findResource(URLClassPath.java:938(Compiled >> Code)) >> 4XESTACKTRACE at >> sun/misc/URLClassPath.findResource(URLClassPath.java:299(Compiled >> Code)) >> 4XESTACKTRACE at >> java/net/URLClassLoader$3.run(URLClassLoader.java:784(Compiled Code)) >> 4XESTACKTRACE at >> java/security/AccessController.doPrivileged(AccessController.java:219) >> 4XESTACKTRACE at >> java/net/URLClassLoader.findResource(URLClassLoader.java:781(Compiled >> Code)) >> 4XESTACKTRACE at >> java/lang/ClassLoader.getResource(ClassLoader.java:420(Compiled Code)) >> 4XESTACKTRACE at >> java/lang/ClassLoader.getResource(ClassLoader.java:415(Compiled Code)) >> 4XESTACKTRACE at >> java/lang/ClassLoader.getResource(ClassLoader.java:415(Compiled Code)) >> 4XESTACKTRACE at >> >> weblogic/utils/classloaders/GenericClassLoader.getResourceInternal(GenericClassLoader.java:170(Compiled >> Code)) >> 4XESTACKTRACE at >> >> weblogic/utils/classloaders/GenericClassLoader.getResource(GenericClassLoader.java:187(Compiled >> Code)) >> 4XESTACKTRACE at >> >> weblogic/utils/classloaders/FilteringClassLoader.getResourceInternal(FilteringClassLoader.java:89(Compiled >> Code)) >> 4XESTACKTRACE at >> >> weblogic/utils/classloaders/GenericClassLoader.getResourceInternal(GenericClassLoader.java:155(Compiled >> Code)) >> 4XESTACKTRACE at >> >> weblogic/utils/classloaders/GenericClassLoader.getResource(GenericClassLoader.java:187(Compiled >> Code)) >> 4XESTACKTRACE at >> java/lang/ClassLoader.getResource(ClassLoader.java:415(Compiled Code)) >> 4XESTACKTRACE at >> >> weblogic/utils/classloaders/GenericClassLoader.getResource(GenericClassLoader.java:190(Compiled >> Code)) >> 4XESTACKTRACE at >> >> weblogic/utils/classloaders/ChangeAwareClassLoader.getResource(ChangeAwareClassLoader.java:118(Compiled >> Code)) >> 4XESTACKTRACE at >> >> org/apache/tapestry5/ioc/internal/util/ClasspathResource.toURL(ClasspathResource.java:59(Compiled >> Code)) >> 4XESTACKTRACE at >> >> org/apache/tapestry5/ioc/internal/util/AbstractResource.exists(AbstractResource.java:137(Compiled >> Code)) >> 4XESTACKTRACE at >> >> org/apache/tapestry5/ioc/internal/util/AbstractResource.forLocale(AbstractResource.java:100(Compiled >> Code)) >> 4XESTACKTRACE at >> >> org/apache/tapestry5/internal/services/AssetSourceImpl.findRelativeAsset(AssetSourceImpl.java:99(Compiled >> Code)) >> 4XESTACKTRACE at >> >> org/apache/tapestry5/internal/services/AssetSourceImpl.getAsset(AssetSourceImpl.java:93(Compiled >> Code)) >> 4XESTACKTRACE at >> $AssetSource_124955c0e4c.getAsset($AssetSource_124955c0e4c.java(Compiled >> Code)) >> 4XESTACKTRACE at >> >> org/apache/tapestry5/internal/transform/AbstractIncludeAssetWorker$1.perform(AbstractIncludeAssetWorker.java:79(Compiled >> Code)) >> 4XESTACKTRACE at >> >> fr/poleemploi/d2i/tapestry/navigation/unifiee/components/Bandeau.setupRender(Bandeau.java(Compiled >> Code)) >> >> The stack comes from weblogic/aix run but the problem is the same on >> other platforms as well. >> >> Does anyone has ever experienced such problems ? >> >> The performance penalty seems to be located in the >> AbstractResource.forLocale() method, especially the potential.exists() >> call. This part of code haven't evolved with the 5.1.x version. >> >> Does anybody have any idea on how to get around this problem ? >> >> Thanks in advance >> >> -- >> ChristianZen >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > -- ChristianZen --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org