nacos icon indicating copy to clipboard operation
nacos copied to clipboard

2.x版本nacos-client瘦身

Open shiyiyue1102 opened this issue 2 years ago • 0 comments

背景 当前nacos-client 2.x大小为14M左右,相比1.x的230K增长较大,增长的部分主要包含支持长链接后引入的grpc和netty包,并且为了减少引入的jar包带来的类冲突,2.x的版本中对其所依赖的jar包进行了shaded处理,因此包增长较大。

分析 1.4.3 版本 包大小:230K 依赖jar包总和:9M image

2.1.0版本 nacos-client大小:14M 依赖jar包总和:19M image

优化 minijar 使用maven minijar功能可以将nacos-client模块中没有使用到的类给排除掉 包大小:9.7M 依赖jar包总和:15M image

1.没有修改任何代码,仅使用minijar插件,client包大小可以减少4M左右。

2.剩余jar包中,jackson和http相关包大约为2.5M, jackson可以使用gson替代,httpcore可以使用jdk包,理论上可以减少2.5M

3.nacos-client为9.7M,解压后为34.7M image

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包大小

shiyiyue1102 avatar Jul 31 '22 13:07 shiyiyue1102