Apple将密码监控服务后端由Java改为Swift,性能提升40%,内存用量降低一个量级,单一实例内存大幅缩减,99.9%请求延迟低于1毫秒,整体资源使用量减半
Apple近年推动软件基础架构现代化,继在移动设备与桌面端广泛导入Swift后,最新重大调整是将密码监控服务后端从Java改写为Swift,并已在全球生产环境部署。根据Apple官方团队说明,Swift版本的性能较Java提升约40%,同时能大幅降低内存用量。
密码监控服务是Apple在2024年所推出Passwords应用程序的核心功能之一。该服务协助用户于多设备间管理密码、通行密钥与验证码,并即时检查密码是否外流。而其服务后端运行在Linux基础设施,需要长时间高效处理全球数十亿设备的查询请求,对性能与扩展性要求严格。
Apple团队表示,随用户规模扩大,Java虽具稳定性及丰富生态系,但在大规模服务下的资源使用率已经成为瓶颈。特别是在内存管理、JVM启动速度与垃圾回收调校上,难以兼顾高并行(Concurrency)的即时性与运算性能。团队在多次调校JVM后仍无法完成预期目标,因此评估以Swift重构系统架构。
采用Swift重写后,服务单一实例内存需求从Java高峰时的数十GB降至数百MB,资源用量大幅减少。整体吞吐量提升约40%,99.9%请求延迟低于1毫秒,团队指出,Swift具严谨类型系统、可选值与安全释放机制,有助减少执行期间错误并提升程序代码可读性。Swift语法设计也使开发人员能以更精简且易于维护的方式构建模块化架构,重写后程序代码行数约为原先的15%,有利于降低运维负担。
在软件架构方面,Apple采用Swift的Vapor服务器端框架,并针对密码监控需求,开发椭圆曲线密码技术、审核、设置及错误处理等自订组件。针对高安全标准,密码监控服务不会回传用户密码至Apple,采用隐私集合交集(Private Set Intersection)等密码技术协议,确保修户隐私与安全。
Apple技术团队进一步指出,Swift除了高性能与安全性,也具动态扩展能力,适合在Kubernetes等云计算原生架构运行。转换后,密码监控服务的资源使用量减半,使Kubernetes集群可发布更多资源供其他服务使用,进而提升整体系统的可用性与弹性。