Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一组小型库相对于一个大型库的性能_Java_Architecture_Shared Libraries_Codebase - Fatal编程技术网

Java 一组小型库相对于一个大型库的性能

Java 一组小型库相对于一个大型库的性能,java,architecture,shared-libraries,codebase,Java,Architecture,Shared Libraries,Codebase,我收集了许多旧项目和随机代码片段,并将它们组织到一个代码库中。我想弄清楚,小型图书馆是否比大型图书馆更有效率 代码库将用于浏览器小程序、桌面应用程序和服务器应用程序。非常感谢。据我所知,在您第一次加载某个类时,类加载器和安全管理器至少会影响性能一次。 JVM在启动时将所有相关类(最后是JAR)加载到内存中,前提是它们在导入中“链接” 如果使用反射等,这就是“按需加载”的发生方式 但我想告诉你的底线是,如果我是你,我会将代码分解成尽可能多的部分 从长远来看,这将提供更好的可维护性,这一点在每个软件

我收集了许多旧项目和随机代码片段,并将它们组织到一个代码库中。我想弄清楚,小型图书馆是否比大型图书馆更有效率


代码库将用于浏览器小程序、桌面应用程序和服务器应用程序。非常感谢。

据我所知,在您第一次加载某个类时,类加载器和安全管理器至少会影响性能一次。
JVM在启动时将所有相关类(最后是JAR)加载到内存中,前提是它们在
导入中“链接”
如果使用反射等,这就是“按需加载”的发生方式

但我想告诉你的底线是,如果我是你,我会将代码分解成尽可能多的部分 从长远来看,这将提供更好的可维护性,这一点在每个软件生命周期中都非常重要


祝你好运

据我所知,在您第一次加载某个类时,类加载器和安全管理器至少会影响性能一次。
JVM在启动时将所有相关类(最后是JAR)加载到内存中,前提是它们在
导入中“链接”
如果使用反射等,这就是“按需加载”的发生方式

但我想告诉你的底线是,如果我是你,我会将代码分解成尽可能多的部分 从长远来看,这将提供更好的可维护性,这一点在每个软件生命周期中都非常重要


祝你好运

就我个人而言,我尝试将代码库按功能分组组织

如果我在做一个简单的控制台或web项目,我真的不想把我所有的UI库代码都拖到一起。同样,我有几个UI库,分为实用程序、组件和动画/高级或专业库

对我来说,这往往会创建许多小型的、非常特定的库(一些库依赖于其他库-例如,我的许多库依赖于同一个核心/实用程序库),但提供了很大的灵活性,因为我可以选择那些最适合支持当前项目的库,而无需拖拽大量,否则,行李就没用了

它确实会使管理变得更复杂(因为你需要记住东西在哪里,但是如果你对如何命名和分组它们很小心的话,应该可以),并且可能会使构建过程更长(取决于你使用的构建系统)

从执行的角度来看,我不认为这会有很大的不同(如果你在做网络部署之类的事情,那么大小就很重要;)

伊姆霍


它确实有助于将项目保持在较小的规模,因为如果您有少量的单片库,它们承载的自重要小得多…(这是一种工作中的情况,这是一种完全痛苦的情况)。

我个人尝试将代码库按功能分组组织

如果我在做一个简单的控制台或web项目,我真的不想把我所有的UI库代码都拖到一起。同样,我有几个UI库,分为实用程序、组件和动画/高级或专业库

对我来说,这往往会创建许多小型的、非常特定的库(一些库依赖于其他库-例如,我的许多库依赖于同一个核心/实用程序库),但提供了很大的灵活性,因为我可以选择那些最适合支持当前项目的库,而无需拖拽大量,否则,行李就没用了

它确实会使管理变得更复杂(因为你需要记住东西在哪里,但是如果你对如何命名和分组它们很小心的话,应该可以),并且可能会使构建过程更长(取决于你使用的构建系统)

从执行的角度来看,我不认为这会有很大的不同(如果你在做网络部署之类的事情,那么大小就很重要;)

伊姆霍


它确实有助于将项目保持在较小的规模,因为如果您有少量的单片库,它们承载的自重要小得多…(这是一种工作中的情况,这是一种完全痛苦的情况)。

总体上我同意,但就小程序而言,库越少越好。对于每个库,浏览器必须打开一个全新的http连接才能获取它。连接越少,项目的加载速度就越快。也许您可以在不同的模块中开发,并为您的小程序代码生成一个uber jar。@Matt yea,在交付JS文件等时,这也是同样的考虑因素。最后,您可以将它们组合起来,但无法维护代码是完全不能接受的。一般来说,我同意,但就小程序而言,库越少越好。对于每个库,浏览器必须打开一个全新的http连接才能获取它。连接越少,项目的加载速度就越快。也许您可以在不同的模块中开发,并为您的小程序代码生成一个uber jar。@Matt yea,在交付JS文件等时,这也是同样的考虑因素。最后,您可以将它们组合起来,但无法维护代码是不可接受的。