所以,我一直都注意到了一些东西,但直到现在还没有多想过。当我第一次打开系统时,我可能会使用javac Dummy.java
在.9秒内编译一个小型java程序。但是如果我做了一些小改动然后重新编译程序,或者去编译一个类似长度和复杂度的程序,它可能需要0.6秒。确切的数字并不重要;重要的是,在我已经在该引导上编译了某些内容之后,编译需要花费大量时间。好像javac
需要"热身"或者其他的东西。我在我的桌面PC和Macbook Air上都有开发,两者都出现了同样的情况,因此我猜测它与javac
本身有关。我的问题是为什么\这是怎么发生的? ......或者我疯了吗?
答案 0 :(得分:1)
操作系统(和磁盘)缓存需要读取编译器并执行动态链接(读取和加载java使用的库)。一个(或多个)缓存可能会在系统上的java编译器(以及其他所有程序)的运行时中起作用。