[ https://issues.apache.org/jira/browse/TAP5-2546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15950407#comment-15950407 ]
ASF subversion and git services commented on TAP5-2546: ------------------------------------------------------- Commit 627df8511604bc969af4e59ed34fb9578ed1586d in tapestry-5's branch refs/heads/master from [~jkemnade] [ https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;h=627df85 ] TAP5-2546: register PlasticClassLoader as parallel capable PlasticClassLoader does not hold any internal state, so it is able to load classes in parallel. > Parallel class loading > ---------------------- > > Key: TAP5-2546 > URL: https://issues.apache.org/jira/browse/TAP5-2546 > Project: Tapestry 5 > Issue Type: Sub-task > Components: plastic > Reporter: Michael Mikhulya > > I would like to improve page loading time by improving its concurrent > execution. > Here is a first patch related to it: TAP5-2545 > Now the worst place from lock contention point of view is synchronization on > {{PlasticClassLoader}}. Actually there are two kind of synchronization: > {{synchronized}} methods in {{PlasticClassLoader}} and {{synchronized > (loader)}} sections in {{PlasticClassPool}}. > Recently most class loaders added support for parallel class loading: > https://bugs.eclipse.org/bugs/show_bug.cgi?id=464442 > https://bz.apache.org/bugzilla/show_bug.cgi?id=57681 > If we would like to split global lock, then we can use following trick for it. > We can substitute code like this: > {code:title=PlasticClassLoader.java} > public synchronized Class<?> defineClassWithBytecode(String className, > byte[] bytecode) > { > return defineClass(className, bytecode, 0, bytecode.length); > } > {code} > with following one: > {code:java} > public Class<?> defineClassWithBytecode(String className, byte[] bytecode) > { > synchronized (className.intern()) > { > return defineClass(className, bytecode, 0, bytecode.length); > } > } > {code} > It is just an idea to quickly check solution. > Can anybody check and discuss idea? Or even better to fix issue. :-) > I'm not an expert in concurrency and afraid making changes in such a critical > place at least before somebody reviewed my idea. So any feedback would be > appreciated. -- This message was sent by Atlassian JIRA (v6.3.15#6346)