mri*_*ing 12 java algorithm performance search jar
假设我有500个jar文件链接到我的程序总计超过500 MB(所有jar的大小,而不是每个jar),我的程序调用位于其中一个的类.Java如何通过jar搜索类,这是什么效率?上)?O(日志(n))的?
Pas*_*ent 10
Java在jar的内部目录结构中查找完全限定名称的完全匹配.它看起来; 它没有搜索.如果类路径上有500个jar文件,Java将按指定顺序逐个查看它们,直到找到匹配项为止.如果包含给定类的jar是最后一个,那么Java将查看500个jar文件.所以我猜它是O(n).
更新:上述行为是默认行为.但是,正如Hassan所指出的,这可以通过在根jar文件中提供JarIndex来优化,允许类加载器通过对包名称的简单查找来查找正确的jar文件.
Has*_*yed 7
默认情况下,它曾经是线性的; 但是,从JDK 1.3开始,JAR索引可以嵌入到应用程序的第一个JAR文件中.
这意味着如果索引嵌入到JAR文件中,则类加载器可以有效地查找分布在属于应用程序的多个JAR文件中的所有类.
链接到JAR索引的SUN资源.注意:似乎没有涵盖非类资源.
归档时间:
15 年,11 月 前
查看次数:
1536 次
最近记录: