docker-library / tomcat

Docker Official Image packaging for Apache Tomcat
https://tomcat.apache.org
Apache License 2.0
620 stars 747 forks source link

Consider packaging Tomcat along with the Ubuntu own Java runtime (3x speedup in JPEG encoding) #320

Open aaime opened 2 weeks ago

aaime commented 2 weeks ago

Testing GeoServer running inside the Tomcat official docker images, I've found it to be significantly slower at generating JPEG outputs compared to my local developer machine (Linux Mint).

I've tracked the difference down to the usage of libjpeg-turbo, by default, in the operating system JDK packages, while Temurin builds are using an older JPEG library, embedded directly in the runtime. I've reported this to the Temurin base images, but just in case, I wanted to let you know as well: https://github.com/adoptium/containers/issues/641

In case the suggestion does not get traction upstream, would it make sense to have Tomcat packaged with just the Ubuntu OpenJDK runtime instead?

tianon commented 2 weeks ago

We had a lot of friction with the Java community when the https://hub.docker.com/_/openjdk images were built on the distro-provided OpenJDK packages, so we're not likely to repeat that for anything intended to provide Java (like Tomcat is).

You might also be interested in (testing?) builds from #299.

aaime commented 2 weeks ago

@tianon thanks for sharing the builds at #299. I don't see any Tomcat 9 build that uses the Linux distribution own JDK, could you confirm?

I've also searched over the OpenJDK bug tracker, I don't see anything related to using libjpeg turbo directly in OpenJDK (as a replacement for the current JPEG library).

In the meantime, Temurin contributors confirmed the performance difference with their own testing, along with the difficulty of having a Temurin build that targets the specific platform, rather than being self-contained (and missing the libjpeg-turbo link).

tianon commented 2 weeks ago

Yes, that is correct -- as noted above, we don't plan to provide that particular combination, unfortunately. :disappointed: