1

我有一个 Ant 任务,它扫描整个 Java 项目类路径以查找某些类文件。

该方法非常幼稚:

  • 在搜索路径的根目录创建一个 File 对象,然后递归搜索类文件。
  • 对于每个类文件,使用 CURRENT ClassLoader (this.getClass.getClassLoader) 和 loadClass() 来加载类。
  • 检查加载的类是否是某个类的实例。

奇怪的是,如果我在调试模式下运行构建并在 JRE 启动选项卡中选择“单独的 JRE”,构建大约需要 8 秒。如果我选择“在与工作区相同的 JRE 中运行”,则构建大约需要 40 秒。

我的项目还包括 10K 左右的类文件。在调试模式下,暂停构建清楚地表明大部分时间都浪费在 loadClass() 上。

我的猜测是“单独的 JRE”以某种方式导致构建以最小的类路径运行,因此类加载过程更快..?不过没多大意义。。

有人在这个问题上领先吗?

提前致谢。

4

0 回答 0