Загрузка предыдущей публикации...
Загрузка предыдущих новостей...
Компании Meta и AWS используют Rust, а Netflix — Go, сообщает новостной портал InfoQ. Однако, Apple недавно осуществила миграцию своей глобальной службы мониторинга паролей с Java на Swift, что позволило увеличить пропускную способность на 40% и значительно снизить потребление памяти.
Согласно статье, это высвободило около 50% ранее выделенных ресурсов Kubernetes, а также улучшило время запуска и упростило управление параллельными процессами.
В недавнем посте разработчики Apple подробно рассказали, как переписывание кода помогло службе обрабатывать миллиарды запросов в день, одновременно повышая скорость отклика и удобство поддержки. Swift позволил создать более компактную, лаконичную и выразительную кодовую базу (сокращение количества строк кода почти на 85%), которая отличается высокой читабельностью и приорититом безопасности и эффективности.
Служба мониторинга паролей Apple, являющаяся частью более широкой экосистемы приложения Password, отвечает за безопасную проверку скомпрометированных учетных данных пользователя в известных утечках данных, не раскрывая при этом Apple какую-либо личную информацию. Она обрабатывает миллиарды запросов ежедневно, выполняя криптографические сравнения с использованием протоколов, обеспечивающих конфиденциальность. Эта нагрузка требует высокой вычислительной производительности, жестких ограничений по задержке и эластичного масштабирования в разных регионах. Предыдущая Java-реализация Apple испытывала трудности с удовлетворением растущих требований к производительности и масштабируемости. Сборка мусора вызывала непредсказуемые паузы под нагрузкой, ухудшая согласованность задержек. Затраты на запуск — из-за инициализации JVM, загрузки классов и JIT-компиляции — замедляли способность системы масштабироваться в реальном времени. Кроме того, объем памяти, занимаемый службой, часто достигал десятков гигабайт на экземпляр, что снижало эффективность инфраструктуры и увеличивало операционные расходы.
Изначально разработанный как клиентский язык для платформ Apple, Swift с тех пор расширил область своего применения и на серверные задачи. Детерминированное управление памятью Swift, основанное на подсчете ссылок, а не на сборке мусора (GC), устранило скачки задержек, вызванные паузами GC. Эта согласованность оказалась критически важной для системы с низкой задержкой в масштабе. После оптимизации Apple сообщила о задержках на уровне 99,9-го процентиля менее одной миллисекунды и резком снижении потребления памяти: экземпляры Swift потребляли сотни мегабайт по сравнению с десятками гигабайт в Java.
В заключение статьи InfoQ отмечает, что это не означает, что Java и подобные языки приходят в упадок, но появляется все больше свидетельств того, что на верхнем пределе требований к производительности некоторые компании обнаруживают, что универсальных сред выполнения недостаточно.
Загрузка предыдущей публикации...
Загрузка следующей публикации...
Загрузка предыдущих новостей...
Загрузка следующих новостей...