对项目构建路径中包含外部库(jar)的性能影响

时间:2013-02-08 16:32:30

标签: java performance build jar

有很多辅助外部库可以包含在java项目中,如 Google Guava,Apache commons等。包含很多这些内容的缺点是什么?它会对项目的性能产生影响还是过度杀戮?

根据您想要使用多少外部库决定是否要将其包含在项目中,但除此之外还有其他需要考虑的问题吗?

1 个答案:

答案 0 :(得分:4)

加载大量库可能最终会破坏你的permgen空间(存储类定义),静态方法/字段可能会占用大量内存,即使你不在jar中使用某个类。但实际上,除非您使用非常有限的设备(例如嵌入式设备),否则这通常不会成为问题。

然而,另一个问题是,有更多的库:

  • 越来越难以追踪真正需要的东西,而不是什么,即可维护性
  • 您可能会对每个库的漏洞敞开心扉
  • 项目中未知变量的数量增加,这可能导致不可预测的行为或更长的错误搜寻

但是,开源,长期维护的库的质量要比我们在前几个版本中编写的内容质量好得多。

总结:保持整洁和精益是一件好事,但是不要实现图书馆为您做的代码,只是为了避免包含该库!

那就是说,我确信这有可能发生意见之争,所以看看别人怎么说!