gpt4 book ai didi

java - Tomcat下URLClassLoader慢

转载 作者:行者123 更新时间:2023-11-28 22:31:06 25 4
gpt4 key购买 nike

我有一个包含大约 30 个 jar 的类路径目录。在我的普通控制台应用程序中,我正在创建一个 URLClassLoader,我在其中使用指向所有这些 jar 的 URL 列表对其进行初始化。

URL[] urls = new URL[] {
new URL("jar:file:/D:/Work/temp/jars/antlr-2.7.7.jar!/"),
new URL("jar:file:/D:/Work/temp/jars/aopalliance-1.0.jar!/"),
new URL("jar:file:/D:/Work/temp/jars/c3p0-0.9.1.jar!/"),
...
}
URLClassLoader cl = new URLClassLoader(urls, getClass().getClassLoader());
Class<?> c = cl.loadClass(...);
etc...

就像这样,一切正常,从我的 URLClassLoader 加载单个类需要几毫秒。

现在我使用这段代码让它在 Tomcat 下运行,例如由 servlet 的 doGet() 中的一个简单 Web 请求触发。令人惊讶的是,加载一个普通类所花费的时间长了 10-15 倍,使得整个初始化时间无法接受。该问题至少适用于 Tomcat 版本 6 和 7。

有什么想法吗?

最佳答案

试试 new URLClassLoader(urls);。这会提高性能吗?

Common 和 WebappX 类加载器可能会影响加载类的性能。有关 Tomcat 的类加载器的更多详细信息,请参阅以下链接。

http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html

关于java - Tomcat下URLClassLoader慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17948577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com