阿里巴巴贡献的实现方案解决了 GraalVM 支持 Java Agent 的两大难题。其一,在 GraalVM 编译阶段识别用户的 premain 函数,将其加入编译队列并注册到运行时入口,使 native image 在运行时能成功调用 premain 函数执行业务逻辑(这是 GraalVM 24 发布的部分)。其二,将 Java Agent 的类转换动作从运行时提前到编译时——先让挂载 agent 的 Java 应用执行一次,把经过 agent 变换的类转储到磁盘,编译时再使用这些变换后的类直接编译进 native image,从而保证使用者看到的就是变换后的版本。




