设为首页
收藏本站
开启辅助访问
全部
问与答
创意
技术
酷工作
生活
交易
资源
节点
飞墙
Follow
明白贴
影视
报酬
登录
注册
飞社-令人惊奇的创意工作者社区-
›
首页
›
Java
›
有没有什么思路对 Fat Jar 进行瘦身
FSHEX=FIND+SHARE+EXPRESS
飞社-令人惊奇的创意工作者社区- 是一个关于发现分享表达的地方
现在登录
没有账号?
立即注册
推荐主题
›
[远程招聘] 互联网寒冬, WEB3 火热🔥招聘
›
求推荐一些能立马带来极强正反馈的行动
›
有或者存在 IT 界的胖东来吗?
›
有什么途经可以了解每天都新出了什么黑科技
›
ai 时代, Java 性能应该很快就超越 cpp 了
今日热议主题
学习编程开发中的一些建议
[有偿求技术指导] 冠林视频门禁开锁/视频流
大家的公司是如何解决晚上值班告警的问题的
出 12 月 24 日开的 88VIP
Docker 一键安装脚本
M1 以上 iPad 连接显示器体验怎么样
正在看鱿鱼游戏 2,里面有个炒币破产的,为
美区 apple-one 超大杯车位,组队
Apple Watch 和 iPhone 上健身最长坚持天数
做了一个可以跟随 Mac 系统文本光标的 AI
有没有什么思路对 Fat Jar 进行瘦身
4ra1n
·
前天 18:30
· 516 次点击
考虑到反射或者懒加载等内容,我思路是这样的:
1. 启动时挂一个 java agent 上去,内容是 hook 加载本地 jar 文件的方法
2. 用户尝试自己需要的功能,例如注册/登录/管理后台等等,完全做一遍
3. 然后看整个流程中 java agent 这边记录的,都加载了哪些 jar 文件
4. 对比存在的 jar 得出一个可以删掉的 jar 列表
请教下这个思路是否可行,以及我需要 hook 的类应该是哪些,或者有没有更好的思路
举报
·
516 次点击
登录
注册
站外分享
微信扫一扫
QQ分享
微博分享
豆瓣分享
复制链接
显示全部
|
最早评论
4 条回复
5#
sagaxu
初学
前天 22:16
java --verbose:class 找出用到的所有 class 和 jar 包,删掉没用的 jar 包,甚至 jar 包内部删掉无用的 class
地板
foolishcrab
小成
前天 22:09
可行,不需要考虑对应用性能影响的时候这个是很简单的东西。 叫 reachability analysis, native image 就有一个专门的 agent 来收集 runtime reflection metadata 之类的东西。 其实这个方案最大的问题在于你帖子里的第二步,对于一个大型软件而言这是很难的,所以一般要在生产上挂着用真实流量收集,这样的话就需要考虑 agent 的性能影响。这里就不展开了
板凳
4ra1n
楼主
小成
前天 19:01
ProGuard 主要是两个问题,第一个配置非常麻烦,不是容易上手的方式 另外一个问题是,它应该是静态分析的引用关系,而不是动态决定的,比如反射问题,某些功能如果是运行时候决定是否调用某个类的,是无法处理的
沙发
bunnyblueair
小成
前天 18:45
ProGuard
返回顶部