You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2017/07/05 21:21:37 UTC

[Bug 60963] Optimize class loading for unpackWARs=false case

https://bz.apache.org/bugzilla/show_bug.cgi?id=60963

--- Comment #22 from Mark Thomas <ma...@apache.org> ---
Unfortunately, Boot depends on the outer JAR/WAR being uncompressed. Tomcat
does not have the option to require that.

My current test (a WAR that just contains all the JAR files from Jira 7.3.4)
takes ~3s to start unpacked, ~110s to start packed and ~95s to start packed
with the latest patch. There is clear improvement but it is still a long way
off the unpacked start time.

Nearly all the additional time is spent in decompression.

The fundamental problem is that we have to decompress the input stream
associated with the inner JAR file before we can read any resources from it.
And we have to do this for every resource we read.

The obvious answer is to unpack the JAR files to the work directory. This is
what Tomcat 7 does. Start-up time there is ~9s (including the time to unpack
the JARs to work). However, one of the aims of the resources re-write in 8.0.x
was to avoid the complexity of file locking protection that that entailed.

Which brings me back to an old question on this topic. What is it that prevents
you from running with unpackWARs="true"? It might turn out to be simpler to
address whatever is preventing you from using that default config.

Still mulling over how best to handle this...

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org