第一次 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/59310079/