惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
月光博客
月光博客
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
U
Unit 42
腾讯CDC
爱范儿
爱范儿
J
Java Code Geeks
有赞技术团队
有赞技术团队
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
B
Blog
Stack Overflow Blog
Stack Overflow Blog
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
Microsoft Azure Blog
Microsoft Azure Blog
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

Java

开源:用刚发布的 Spring AI 2.0.1,撸了一个全功能 Agent - V2EX 纯开源 Nexus 替代方案 kkRepo 1.0.0 正式发布,新增 R/CRAN、Go Hosted 和多套 UI 主题 - V2EX 不想写代码,但想要集成一个登录页面? Sa-Token-Quick-Login 帮你实现! - V2EX 善于学习的 Java 后端朋友们,想请教下你是如何榨干自己的工作项目经验,把它沉淀下来慢慢积攒成自己的能力的? - V2EX Java Crac 几乎正式可用 - V2EX Sa-Token v1.46.0 发布 🚀,来看看有没有令你心动的功能! - V2EX 可以下线 Nexus 了:纯开源制品仓库 kkRepo v0.9.0 发布,新增 Alpine、Hugging Face Models 与全局搜索 - V2EX Java 转 native 究竟行不行?无需精通 graalvm native-image 配置就能打包 native exe 方法分享。 - V2EX fastjson 居然停止维护了 - V2EX happens-before 详解 华为的毕昇 JDK 8 AppCDS 特性稳定吗? fastjson1.x 最新版本疑似又出 RCE 漏洞了 讲讲我怎么获得 kkRepo 的首个企业用户,成功替换掉 Nexus,每年节省 $1,620 PRO 订阅费用 Sonatype 正引入 Maven Central 仓库发布使用情况可见性和针对高流量发布活动的限制 让 Java 再次伟大,没有人比我更懂得如何打包!(分享一个四两拨千斤的多 jar 打包 exe 方式) 使用 kkRepo 搭建 Maven 私服 Nexus 的平替 neuxs-plus 开源涉嫌商标侵权,被迫改名 kkRepo 我在 IDEA tab 里养了一只猫 Java 确实是内存高效的 用 AI 把 visualvm 的部分功能界面换了个马甲 javaer 现在出去面试 问哪些内容 sa-token + spring cloud gateway 过滤器顺序问题 关于在 wsl 中使用 idea 进行 Java 开发的问题 求助, Fortify 漏扫问题解决 微信 ClawBot 和企微 AIBot 的 Java SDK 老业务信创重构选型大家有啥建议 ai 编程的情况在你们使用什么 IDE 下面这段 Java 多态的代码,如何才能改为 Go、 Python 、JS、C++版本? JDK 26 发布,非 lts 版本 DoytoQuery vs SpringDataJPA
我把 Java 开发的 kkRepo 支持 AOT 编译, 1s 极速启动,空闲...
g632104866 · 2026-07-21 · via Java

kkRepo 是什么?

kkRepo 是一款社区驱动、完全开源的自托管制品仓库,旨在解决 Sonatype Nexus 社区版的各类限制与痛点,为社区提供开放、可靠且可持续演进的制品管理方案。目前已支持 Maven 、npm 、PyPI 、Go 、Helm 、Cargo/Rust 、Dart/Pub 、Composer/PHP 、Terraform 、Swift Package Registry 、Docker/OCI 、NuGet 、RubyGems 、Yum 和 Raw 等制品格式。

支持 AOT 和 JVM 双编译

来源于 V2EX 用户的一句提醒,说 Java 启动太慢太耗内存了,于是我把 kkRepo 支持了 AOT 和 JVM 双编译,总体来说各有优劣。AOT 启动快占用资源少,JVM 的吞吐比 AOT 明显更高。现在可以自由选择了。

启动、内存与包体积

指标 Native JVM 说明
创建容器到 readiness 中位数 1.037 秒 11.888 秒 Native 快 11.5 倍
Spring 自报启动中位数 0.639 秒 9.562 秒 Native 快 15.0 倍
5 轮 readiness 范围 1.031-1.793 秒 11.295-14.762 秒 Native 重启窗口更短
空闲 Docker 内存中位数 170.4 MiB 315.1 MiB Native 少 45.9%
空闲进程 RSS 134.4 MiB 327.0 MiB Native 少 58.9%
空闲 CPU 中位数 0.32% 1.27% 两者都很低,Native 后台开销更小
空闲线程数 40 50 Native 少 20%
负载期间进程 RSS 峰值 218.4 MiB 389.4 MiB Native 少 43.9%
Docker 镜像内容大小 238 MB 388 MB Native 小 38.7%
Docker 本地磁盘占用 494 MB 796 MB Native 小 37.9%

请求性能

充分预热后,两种模式在单并发测试中的 P50 都约为 1 ms 。差异主要出现在持续并发阶段:完成 JIT 预热后的 JVM 通常能提供更高吞吐。

64 并发持续负载端点 Native 请求/秒 JVM 请求/秒 JVM 吞吐变化 Native P95/P99 JVM P95/P99
Actuator health 765 911 +19.1% 65/1006 ms 44/1032 ms
Browse 页面 2,071 2,293 +10.7% 81/209 ms 86/147 ms
Repositories API 2,084 3,005 +44.2% 91/102 ms 74/185 ms

3 轮 32 并发、每轮 10,000 请求的结果也呈现相同的稳态趋势:

  • Browse 中位吞吐:Native 2,529 请求/秒,JVM 3,003 请求/秒,JVM 高 18.7%。
  • Repositories API 中位吞吐:Native 1,942 请求/秒,JVM 2,438 请求/秒,JVM 高 25.5%。