nacos
nacos copied to clipboard
2.x版本nacos-client瘦身
背景 当前nacos-client 2.x大小为14M左右,相比1.x的230K增长较大,增长的部分主要包含支持长链接后引入的grpc和netty包,并且为了减少引入的jar包带来的类冲突,2.x的版本中对其所依赖的jar包进行了shaded处理,因此包增长较大。
分析
1.4.3 版本
包大小:230K
依赖jar包总和:9M
2.1.0版本
nacos-client大小:14M
依赖jar包总和:19M
优化
minijar
使用maven minijar功能可以将nacos-client模块中没有使用到的类给排除掉
包大小:9.7M
依赖jar包总和:15M
1.没有修改任何代码,仅使用minijar插件,client包大小可以减少4M左右。
2.剩余jar包中,jackson和http相关包大约为2.5M, jackson可以使用gson替代,httpcore可以使用jdk包,理论上可以减少2.5M
3.nacos-client为9.7M,解压后为34.7M
fastxml-jackson为6.2M,约占六分之一,使用gson替换之后,理论上nacos-client可以减少1.7M至8M 去jackson和httpcore 包大小:8M 依赖jar包总和:11M
结果 当前分析结果下,理论上grpc,netty, gson为必须依赖外,最好的优化结果如下: nacos-client大小:14M->8M 依赖jar包总和:19M->11M
欢迎社区的同学一起参与讨论,看下还有没有其他的优化手段,进一步减小客户端jar包大小