I would like to improve page loading time by improving its concurrent execution.
Here is a first patch related to it:
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:
If we would like to split global lock, then we can use following trick for it.
We can substitute code like this:
with following one:
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.