写点什么

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:002

评论

发布
暂无评论

从3天到3小时,“文思助手”让行业专业写作“文思泉涌”

飞桨PaddlePaddle

百度 paddle 百度飞桨 文心大模型‘ 飞桨星河社区

实用技巧:Mock.js 模拟数据生成教程

Apifox

前端 前端开发 Mock Mock 服务 Mock.js

数字化商品计划管理:提升运营效率和竞争力的关键

第七在线

云小课|Runc容器逃逸漏洞(CVE-2024-21626)安全风险通告

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 华为云云小课

【大数据技术攻关专题】「Apache-Flink零基础入门」手把手+零基础带你玩转大数据流式处理引擎Flink(基础加强+运行原理)

码界西柚

大数据 flink flink 实战 技术指南 2024年第三十一篇文章

年度大模型榜单揭晓,智谱AI GLM-4在上海人工智能实验室司南榜单中位居国内榜首

极客天地

面试官:Sentinel是如何实现限流的?

王磊

Java 面试

探索大模型的端应用与形态

百度开发者中心

人工智能 深度学习 大模型

预训练对话大模型深度解读

百度开发者中心

自然语言处理 深度学习 大模型训练 大模型

私有化部署的局域网即时通讯工具

BeeWorks

一文搞懂设计模式—单例模式

Java随想录

Java 设计模式

由亚马逊云科技 Graviton4 驱动的全新内存优化型实例 Amazon EC2 实例(R8g),现已开放预览

亚马逊云科技 (Amazon Web Services)

Java’ Amazon EC2

eosio.token 智能合约介绍

BSN研习社

区块链 智能合约 EOS

一文详解应用安全防护ESAPI

华为云开发者联盟

安全 开发 华为云 华为云开发者联盟 应用安全防护

预训练对话大模型深度解读

百度开发者中心

自然语言处理 深度学习 大模型

平台工程: 用Backstage构建开发者门户 - 2

俞凡

平台工程

什么是企业级应用软件?对企业有什么应用意义?常见的企业级应用软件有哪些?

天津汇柏科技有限公司

创业 企业级应用 企业级应用程序开发 企业级应用软件

软件架构一致性 —— 被忽视的研发成本

阿里技术

软件架构 研发 研发成本

AI大模型:基础模型的新时代

百度开发者中心

人工智能 大模型

服装品牌如何利用数字化工具提升商品管理效率

第七在线

DevOps是什么?只看这篇文章就够了!

华为云PaaS服务小智

DevOps 华为云

本地缓存Ehcache的应用实践 | 京东云技术团队

京东科技开发者

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