|
From: <mic...@jb...> - 2006-06-29 16:55:56
|
I cannot seem to be able to drive the CPU load to >85% in my Seam application stress testing. If I increase the client threads, the response time would simply increase and the CPU stays at around 85%. So, I did a thread dump, and found most HTTP threads are waiting at line 161 of class org.jboss.aop.metadata.MethodMetaData. This line is a synchronized access to a HashMap, and it is appreantly a contention point where multiple CPUs have to wait on each other.
| public class MethodMetaData implements MetaDataResolver {
|
| public synchronized Object getMethodMetaData(Method method, Object tag, Object attr) {
|
| // This is line 161:
| SimpleMetaData methodData = (SimpleMetaData)methodMetaData.get(method.toString());
|
| }
| }
|
Clebert suggested to use a concurrent HashMap instead of the method level synchronization here. What do you guys think?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3954445#3954445
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3954445
|