這是用戶在 2025-7-1 20:26 為 https://www.infoq.cn/article/c8iwVKyVKNxEQ84eclIN 保存的雙語快照頁面,由 沉浸式翻譯 提供雙語支持。了解如何保存?
寫點什麼

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/

大會推薦:
8 月 22~23 日的 AICon 深圳站 將以 “探索 AI 應用邊界” 為主題,聚焦 Agent、多模態、AI 產品設計等熱門方向,圍繞企業如何通過大模型降低成本、提升經營效率的實際應用案例,邀請來自頭部企業、大廠以及明星創業公司的專家,帶來一線的大模型實踐經驗和前沿洞察。 一起探索 AI 應用的更多可能,發掘 AI 驅動業務增長的新路徑!

2025-06-14 18:005983

評論 1 條評論

發佈
用户头像
“Swift 實例消耗了數百 MB,而 Java 則消耗了數十 GB” - 這麼誇張?
2025-06-15 09:40 · 北京
回復
沒有更多了

堡壘機重要嗎? 為什麼? 求解!

行雲管家

堡壘機 安全運維 錄像審計

單點登錄的三種實現方式

輔助

SSO (單點登入) 單點登錄

Amazon CodeWhisperer 初體驗

編碼 r9527

執行計劃緩存,Prepared Statement 性能躍升的秘密

華為雲開發者聯盟

資料庫 後端 華為雲 華為雲開發者聯盟 企業號 6 月 PK 榜

強化學習基礎篇【1】:基礎知識點、瑪律科夫決策過程、蒙特卡洛策略梯度定理、REINFORCE 演算法

汀丶人工智慧

人工智慧 深度學習 強化學習

全國信安標委「標準周」在昆明召開,騰訊安全受邀分享標準實踐經驗

說山水

海汽集團:業財共用服務中心建設推進集團數位治理

用友 BIP

財務共用

巨夢征文 | 2023年第一期徵文大賽| 報名請評論本文章

巨夢科技

官宣! Databend 和 XSKY 星辰天合達成合作

數據彎

一文讀懂責任分配矩陣,解決你80%的項目難題

敏捷開發

專案管理 Scrum (爭霸) 敏捷開發 責任分配矩陣 RACI 矩陣

GreptimeDB 設計原則 — 雲原生時序資料庫,解決海量數據管理挑戰

Greptime 格睿科技

資料庫 分散式資料庫 時序資料庫 雲原生資料庫

聖邦股份:品類持續深挖,高端加速推進,類比龍頭穩健發展

華秋電子

億級大表毫秒關聯,荔枝微課基於騰訊雲數據倉庫 Doris 的統一實時數倉建設實踐

科技熱聞

2 個場景實例講解 GaussDB(DWS)基表統計資訊估算不準的處理方案

華為雲開發者聯盟

資料庫 後端 華為雲 華為雲開發者聯盟 企業號 6 月 PK 榜

數位賦農:數字農業新時代,致富之路寬又闊!

加入高科技仿生人

低代碼 智慧農業 數位賦能 科技興農

羽山數據 SaaS 平臺新增供應商 API 自動上架功能

羽山數據

自動 自主研發 上架

軟體測試/測試開發丨 Pytest 參數化用例學習筆記

測試人

程式師 軟體測試 自動化測試 測試開發 pytest

手把手實踐丨基於 STM32+華為雲設計的智慧煙感系統

華為雲開發者聯盟

雲計算 華為雲 華為雲開發者聯盟 企業號 6 月 PK 榜

強化學習基礎篇[2]:SARSA、Q-learning 演算法簡介、應用舉例、優缺點

汀丶人工智慧

人工智慧 深度學習 強化學習

行雲堡壘 V7 亮點有哪些? 具體看這裡!

行雲管家

IT 運維 行雲堡壘

通過 FP&A 實踐,釋放企業深度價值

智達方通

全面預算管理 財務規劃和分析 FP&A

我又和 redis 超時杠上了

藍胖子的程式設計夢

雷迪斯 性能分析 雲伺服器 線上事故 介面超時

分享幾個索引創建的小 Tips

江南一點雨

MySQL (MySQL 的

軟體測試/測試開發丨 Pytest 測試框架學習筆記

測試人

程式師 軟體測試 pytest

又雙叒叕種草了新家裝風格? AI 幫你家居換裝

華為雲開發者聯盟

人工智慧 華為雲 華為雲開發者聯盟 企業號 6 月 PK 榜

中移鏈資源管理介紹

BSN 研習社

含有 CPU 晶元的 PCB 設計需要考慮的五個主要方面

華秋電子

數據隱私為先:EMQX Cloud BYOC 架構解析

EMQ 映雲科技

物聯網 雲服務 MQTT 協定

淺談 EOS 區塊鏈性能測試

BSN 研習社

可持續發展的企業數智化底座究竟是什麼樣的?

用友 BIP

白皮書 數智底座 數智平臺 數智平臺白皮書

人工智慧工程總體介紹

紫暉

人工智慧 軟體工程 數據開發

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