正如我在启动Java应用程序之前了解JVM一样,它为它分配了一些RAM,并且这个内存可以在启动之前由用户控制。但是当我启动一个应用程序时,每次都有不同的执行时间,还有另外一个问题。
这是一个非常简单的for循环示例:
package timespent;
public class Main {
public static void main(String[] args) {
long startTime = System.nanoTime();
int j = 0;
for (int i = 0; i < 1.E6; i++) {
j = i + 1;
}
long endTime = System.nanoTime();
long duration = (endTime - startTime);
System.out.println("duration = " + duration);
}
}
它打印出不同的结果:
duration = 5720542
duration = 7331307
duration = 7737946
duration = 6899173
假设我希望它能够精确地执行10,000,000纳秒或10毫秒。
我想要什么?
我希望java应用程序以精确的时间执行执行。
我为什么需要这个?
当我启动一个应用程序时,我想在加载所有组件之前显示应用程序启动窗口上剩下的确切执行时间。
我想这是一种CPU操作,我想知道它是否可能。
Q1:在Java中有可能吗?
Q2:如果在Java中不可能,那么有没有办法通过访问OS本机方法来实现这一点。例如通过优先处理Java应用程序或其他东西?
问题3:如何将应用程序的状态保存到文件并将其加载到内存中?