Re: T5: ClasspathResource and performance

2009-10-30 Thread Christiansen Merel
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 

T5: ClasspathResource and performance

2009-10-29 Thread 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



Re: T5: ClasspathResource and performance

2009-10-29 Thread Ulrich Stärk

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



Re: T5: ClasspathResource and performance

2009-10-29 Thread cordenier christophe
Hello

i have already encounter this kind of problem, we solved it by using a
decorator to cache asset access with something like, it was for Tapestry
5.0.18 :

public class AssetSourceCacheDecorator implements AssetSource {

private final MapMultiKey, *Asset* cache =
CollectionFactory.newConcurrentMap();

private final AssetSource delegate;

public AssetSourceCacheDecorator(AssetSource delegate) { this.delegate =
delegate; }

public *Asset* getAsset(Resource baseResource, String path, Locale locale) {


MultiKey key = new MultiKey(path, locale); if (cache.get(key) == null) { *
Asset* *asset* = delegate.getAsset(baseResource, path, locale);
cache.put(key, *asset*); return *asset*; }

return cache.get(key); }

public *Asset* getClasspathAsset(String path) { return
this.getClasspathAsset(path, null); }

public *Asset* getClasspathAsset(String path, Locale locale) { return
this.getAsset(null, path, locale); }

}


Regards,

Christophe.


2009/10/29 Christiansen Merel c.me...@otakeh.com

 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

 

Re: T5: ClasspathResource and performance

2009-10-29 Thread Carl Crowder
Also on there is the tapestry.file-check-interval which specifies how 
long Tapestry should wait before rechecking for changes. In production, 
I set that to 1y because the files aren't going to change. However I 
don't know if this affects asset loading or not, but I *think* that once 
the first hit returns null it won't keep checking? It's worth a try and 
it certainly won't harm.


Ulrich Stärk wrote:

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