AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

Apple 完成了关键生态系统服务到 Swift 的迁移,性能提升了 40%

作者:Matt Foster

  • 2025-06-14
    北京
  • 本文字数:1148 字

    阅读完需:约 4 分钟

大小:574.53K时长:03:16
Apple完成了关键生态系统服务到Swift的迁移,性能提升了40%

苹果公司已将其全球密码监控服务从 Java 迁移到 Swift,实现了吞吐量增加 40%,并显著减少了内存使用量——释放了近 50%之前分配 Kubernetes 的容量。

 

最近的一篇文章中,苹果工程师详细说明了重写如何帮助服务扩展到每天数十亿次请求,同时提高了响应能力和可维护性。团队提到,较低的内存开销、更好的启动时间和简化的并发性是选择 Swift 而不是进一步优化 JVM 的关键原因。

 

Swift 使我们能够编写更小、更简洁、更具表现力的代码库(代码行数减少了近 85%),这些代码库在优先考虑安全性和效率的同时具有高度的可读性。

 

苹果的密码监控服务是更广泛的密码应用生态系统的一部分,负责安全地检查用户保存的凭据是否出现在已知的数据泄露中,而不会向苹果泄露任何私人信息。它每天处理数十亿次请求,使用隐私保护协议进行密码学比较。

 

这种工作负载需要高计算吞吐量、严格的延迟限制和跨区域的弹性伸缩。一天之内的流量波动很大,区域峰值差异高达 50%。为了适应这些波动,系统必须能够快速启动或关闭实例,同时保持低延迟响应。

 

苹果之前的 Java 实现难以满足服务不断增长的性能和可扩展性需求。垃圾收集在负载下导致不可预测的暂停时间,降低了延迟一致性。从 JVM 初始化、类加载和即时编译的启动开销,减缓了系统实时扩展的能力。此外,服务的内存占用量通常每个实例达到数十 GB,降低了基础设施效率并增加了运营成本。

 

Swift 最初是作为苹果平台的客户端语言开发的,后来扩展到服务器端用例。苹果的工程团队选择 Swift,不仅是因为它的生态系统一致性,还因为它能够在计算密集型环境中提供一致的性能。

 

这次重写还使用了Vapor(这是一个流行的 Swift Web 框架)作为基础。还实现了其他自定义包老处理椭圆曲线操作、密码学审计和特定于密码监控领域的中间件。

 

Swift 的确定性内存管理,基于引用计数而不是垃圾回收(GC),消除了由 GC 暂停引起的延迟峰值。事实证明,这种一致性对于大规模低延迟系统至关重要。在调优之后,苹果报告了亚毫秒级的 99.9 百分位延迟和内存使用量的大幅下降:Swift 实例消耗了数百 MB,而 Java 则消耗了数十 GB。

 

启动时间也得到了改善。没有 JVM 初始化开销或 JIT 预热,Swift 服务可以更快地冷启动,支持苹果的全球自动扩展需求。

 

苹果的迁移反映了一个更广泛的趋势:在极端规模的服务中使用面向性能的语言。从高性能的源代码控制解决方案到区块链的编程语言,Meta与 Rust 有着悠久的历史。Netflix引入了 Rend,这是一个用 Go 编写的高性能代理,来接管与 Memcached 交互的基于 Java 的客户端。AWS 在确定性性能和低资源使用提高基础设施效率的服务中越来越多地依赖Rust

 

虽然这并不是 Java 和类似语言衰落的迹象,但有越来越多的证据表明,在性能需求的最高端,一些人发现通用运行时不再满足其需求。

 

原文链接:

https://www.infoq.com/news/2025/06/apple-swift-migration/

2025-06-14 18:006766

评论 1 条评论

发布
用户头像
"Swift 实例消耗了数百 MB,而 Java 则消耗了数十 GB" - 这么夸张?
2025-06-15 09:40 · 北京
回复
没有更多了

训练营第一周学习总结

毛叫

极客时间 极客大学架构师训练营

就餐卡系统设计文档 【第一周】

mylove321

信息的表示与存储-浮点数的表示

引花眠

计算机基础

把生活找回来

zhoo299

随笔杂谈

架构师-悟性和技能

yupi

《架构师训练营》第一周学习总结

架构homework1-2

蜡笔小晗

架构师训练营第一周学习总结

跨域刀

极客大学架构师训练营

架构师训练营第1周作业

一叶知秋

【第一周】食堂就餐卡架构设计

星星

架构师训练营week01-食堂就餐卡系统设计

Just顾

食堂就餐卡系统设计

漫步跑小鸡

ARTS打卡 第3周

引花眠

ARTS 打卡计划

架构师训练营学习总结

weijin

【架构师week01】总结

高程

总结 架构师

「架构师训练营」第一周总结

极客

架构师训练营 第一周 作业

极客大学架构师训练营

架构师如何进行软件架构设计学习总结

一点点..

【架构师week01】作业

高程

架构师 作业

架构师、架构

stars

「架构师训练营」第 1 周作业 - 食堂就餐卡系统设计

butterfly

第一周作业(2)

佳明

架构师-Week1作业

龙7

极客大学架构师训练营

食堂就餐卡系统设计

走过路过飞过

week01-就餐卡系统架构设计

强哥

极客大学架构师训练营

架构方法 - 架构师如何做架构总结(1)

Paula_l

架构师训练营Week 01 学习总结

Just顾

架构师训练营第1周-食堂就餐卡系统设计

海滨

极客大学架构师训练营

架构师0期第一周总结

Nan Jiang

就餐系统架构设计

草原上的奔跑

极客大学架构师训练营

作业一:食堂就餐卡系统设计

亮灯

Apple完成了关键生态系统服务到Swift的迁移,性能提升了40%_后端_InfoQ精选文章