第一次 RPC 调用服务器时发生超时,但子请求成功。服务器响应超时,因为在第一次调用时它加载了处理请求所需的库。由于这种延迟,一些客户端会超时。尽管可以增加客户端的超时延迟,但我想尽量减少类加载对应用程序响应能力的影响。
您将如何预加载 Java 类文件,以便在应用程序的 .jar
文件首次运行时类加载不会在第一次调用时引入延迟?
最佳答案
您可以在服务器上线之前运行负载。您没有指定如何加载服务器、类和环境,但是您可以利用类静态初始化器将在加载类时运行这一事实。所以,如果您从“main”方法运行,您的类可能看起来像这样
public class Foo {
static {
//this will be run when the class is loaded
try { Class.forName("fully.qualified.class.name.that.i.want.to.Load"); }
catch ...
}
public static void main (string args[])
{
//run my server...
}
}
关于java - 在 jar 启动时预加载 java 类/库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/677739/