热点资讯
dafa大发手机版app Lalamove 代码瘦身现实
发布日期:2026-03-17 14:00 点击次数:114

1.配景Lalamove 外西化业务经过了多年的迭代和演进,代码日渐肥美,无谓的业务逻辑、清除的 DB 字段等充斥在代码每个边缘,交游团队在项当今期和蹂躏统计,至少存在30%以上代码属于清除的无效逻辑,订单范畴的清除 DB 字段也在100+以上,对代码质料和研发遵守齐形成了较大影响。
在2025年头,lalamove 交游团队启动了代号为"大扫除"的代码瘦身计较,旨在通过撤消无效代码和 DB 清除字段的花式,栽植代码可读性、可疗养性,裁汰调换老本,最终栽植研发遵守。并最终取得了可以的后果:
2.瘦身范围无谓代码波及的范围终点大,咱们需要从中识别出 #后端 #架构 #代码整洁之说念 ROI(插足产出比)最大的部分。最终详情的代码瘦身范围包括如下几类:
无援用的代码(包括类、才气、字段)有援用无流量的才气无谓的DB属性无效的Apollo成就对于重构:尽管在代码瘦身中,业务重构也有所波及,但重构条目对业务范畴较为熟识,dafa大发手机版app且重构花式因业务范畴而有所不同,非通用科罚有诡计可以作念到。故本文不伸开先容。
3.奈何高效清算无谓代码?3.1 代码瘦身器用简要在对无谓代码和清除 DB 字段的清算过程中,CI 团队和交游研发团队互助,缔造了3种器用。这些器用可以协助咱们精确识别无谓代码,最终栽植清算效率。而且充分探究到易用性,作念到低老本可复用。
3.2 SA插件的旨趣和使用3.2.1 SA插件旨趣先容SA 插件 使用了 Spoon器用 的代码明白才气 、Hotspot VM SA(Service Ability) 的才气实行次数统计才气 。 在职业驱动一段本事后,运用 Spoon 获得[ 才气全集 ], 运用 Hotspot VM SA(Service Ability) 获得[ 有流量才气集 ], 对两者取差集得到[ 无流量才气集] 。
3.2.2 Hotspot VM SA(Service Ability)Hotspot VM SA(Service Ability) 是 HotSpot VM 提供的一套调试器用集,它可以通过 attach 到运筹帷幄程度的花式,获得运筹帷幄程度在 OS 层面的内存数据,其中就包含 JAVA 的” 才气实行次数 ”. JVM 纪录才气实行次数的主见是为了将高频阐发实行的代码,通过 JIT(just in time)机制编译为土产货机器码, 栽植实行效率。 The Serviceability Agent(SA) . The Serviceability Agent is a Sun private component in the HotSpot repository that was developed by HotSpot engineers to assist in debugging HotSpot. They then realized that SA could be used to craft serviceability tools for end users since it can expose Java objects as well as HotSpot data structures both in running processes and in core files.
参考: openjdk.org/groups/hots…
3.2.3 集聚进程这里咱们将 jdk 提供的 sa-jdi.jar, 包装为一个 java 程度外的 SA Agent, 在 k8s 容器阵一火时触发运筹帷幄 JVM 的 attach 行为,且只会对职业的 k8s 集群中" 最早启动的 pod "进行集聚。
最终将集聚到的" 才气实行次数 "数据上报到" 代码精简平台 ".
3.2.4 谛视事项Hotspot VM SA(Service Ability) 的attach行为会触发JVM暂停(STW, stop the world),因此需要承袭恰当的attach时机,比如东说念主工离线职业pod或发布时的pod阵一火等。Hotspot VM SA(Service Ability) 集聚JVM数据需要饱和内存(如剩余内存至少在500M~1G)。被Hotspot VM SA(Service Ability) 集聚的职业必须具有多个pod实例(2个以上最好),防御办职业务被中断 或 极点情况下单点问题。3.2.5 代码达成被编译实行的才气集聚:public class CompiledMethodVisitor implements CodeCacheVisitor{
//......
public void visit(CodeBlob codeBlob) {
if (codeBlob == null dafa大发手机版app

备案号: