Я запускаю новый исследовательский проект, чтобы ответить на фундаментальный для веб-производительности и безопасности вопрос, и мне нужна ваша помощь. Насколько быстры современные браузеры в выполнении криптографического хеширования? Не в синтетической лаборатории, а на бесчисленных реальных устройствах, которыми пользуетесь вы и ваши пользователи каждый день.
Это исследование направлено на то, чтобы выйти за рамки простых тестов и создать «живой бенчмарк», основанный на данных от мирового технологического сообщества. Собранные нами данные прольют свет на практические вопросы, которые волнуют разработчиков, инженеров по безопасности и энтузиастов производительности.
Почему это важно?
Хеширование — это незаметный труженик веба. Это ключевой компонент Content Security Policy (CSP), основа для Subresource Integrity (SRI) и множества других механизмов безопасности. Но у этой безопасности есть своя цена в производительности. Моя цель — количественно оценить эту цену с максимально возможной точностью.
Это исследование призвано ответить на такие вопросы, как:
- Войны браузерных движков: Как соотносятся по производительности в чистой криптографии V8 от Chrome, SpiderMonkey от Firefox и JavaScriptCore от Safari?
- Влияние оборудования и платформы: Насколько новый MacBook серии M быстрее Android-смартфона среднего класса, учитывая реальные ограничения, такие как троттлинг?
- Вопрос о состоянии питания: Значительно ли снижается производительность при работе от аккумулятора для таких интенсивных задач?
Собирая данные с самых разных устройств, мы сможем создать публичную, основанную на данных картину реальной производительности криптографии в вебе.
Как вы можете внести свой вклад
Я создал простой и удобный инструмент для бенчмаркинга, чтобы участие было максимально лёгким. Всё, что нужно — это один клик.
Вот как это работает:
- Закройте другие ресурсоёмкие приложения и вкладки для наиболее точных результатов.
- Нажмите «Start Benchmark» ниже. Тест очень тщательный, и его длительность адаптируется к вашему устройству (примерно 30-40 секунд на мобильных, 90 секунд на десктопе).
- Просмотрите результаты, затем нажмите «Submit», чтобы анонимно отправить их нашему коллектору.
Тест скорости хеширования
Тест скорости хеширования: Будет выполнен краткий тест на вашем устройстве (SHA-256/384/512). Личные данные и cookie не собираются. Перед отправкой вы сможете просмотреть результаты.
| Алгоритм | Размер | MoM (ms) | 95% ДИ (мс) | Медиана (мс) | IQR (ms) | Stable | Remediation Attempts |
|---|
Подсказка: прокрутите таблицу по горизонтали, чтобы увидеть все столбцы.
Вот и всё. Ваш вклад теперь является частью высококачественного публичного набора данных.
Методология лабораторного уровня
Для тех, кто интересуется техническими деталями, это не просто цикл. Бенчмарк спроектирован для получения исключительно точных и воспроизводимых результатов с низким уровнем шума.
- Адаптация к среде выполнения: Бенчмарк интеллектуально адаптируется к вашему устройству. Он определяет мобильные окружения и применяет более консервативный профиль тестирования для предотвращения троттлинга. На мобильных устройствах он даже вставляет паузы для охлаждения между тяжелыми задачами, чтобы результаты отражали устойчивую производительность, а не только начальный всплеск.
- Обязательная изолированная среда: Бенчмарк требует современный браузер и среду с «изоляцией между источниками» (cross-origin isolation). Это открывает доступ к таймерам высокого разрешения и более строгой изоляции процессов.
- Канал данных без копирования: Все высокочастотные данные о времени передаются из Web Worker в основной поток через
SharedArrayBuffer. Этот «бесшумный» канал связи устраняет помехи в измерениях. - Гарантии целостности данных: Тест автоматически прерывается, если вы переключаете вкладку, предотвращая сбор невалидных данных из замедленного процесса.
- Робастная статистика: Итоговые цифры — это не простые средние значения. Мы используем робастные статистические оценки, такие как медиана средних (Median-of-Means) и Bootstrap доверительные интервалы, чтобы предоставить более точную картину производительности, устойчивую к системным шумам. Движок также интеллектуально перезапускает нестабильные тесты для улучшения качества данных.
Этот подход минимизирует распространенные ошибки при бенчмаркинге и нацелен на получение истинной картины пропускной способности хеширования в браузере.
Какие данные собираются?
Процесс спроектирован так, чтобы быть прозрачным и анонимным. Скрипт собирает только неидентифицируемые данные о производительности и оборудовании:
- Метрики производительности: Операций в секунду, медиана средних, Bootstrap 95% доверительные интервалы и другие метрики качества.
- Браузер и ОС: Строка User-Agent (например, Chrome 127, Windows 11).
- Характеристики оборудования: Количество ядер ЦП (
navigator.hardwareConcurrency), объём памяти устройства и высокоэнтропийные Client Hints, если они доступны (например, модель устройства, «iPhone 15 Pro»). - Состояние питания: Уровень заряда батареи и подключено ли устройство к зарядному устройству.
- Анонимные метаданные запуска: Собираются уникальный, случайно сгенерированный идентификатор для вашего браузера (
anonId) и для каждого конкретного запуска теста (runId). Также включается версия скрипта.
Сборщик данных спроектирован с приоритетом на конфиденциальность. Мы не храним IP-адреса и не используем файлы cookie. Отладочная информация с высокой энтропией удаляется из всех публичных отправок. Цель состоит исключительно в анализе тенденций программного и аппаратного обеспечения.
Полный исходный код, методология и политика безопасности доступны для публичного ознакомления в официальном репозитории на GitHub.
Текущие результаты
Это живой проект, и вы можете следить за нашим прогрессом в достижении исследовательских целей.
Всего получено результатов: …
Полный анализ и загружаемый набор необработанных данных будут опубликованы, как только мы достигнем нашей первоначальной цели — примерно 200 результатов для каждого основного браузера (Chrome, Firefox, Safari) на десктопных и мобильных платформах. Спасибо, что помогаете нам этого достичь!
Конечная цель: публичный анализ
После того как мы соберем значительный набор данных, я проведу полный анализ и опубликую результаты прямо здесь, в этом блоге. Статья будет содержать наглядные визуализации и выводы, отвечающие на поставленные ранее вопросы.
Кроме того, я сделаю полный анонимизированный набор необработанных данных доступным для скачивания, чтобы другие могли проводить собственные анализы и исследования.
Спасибо за участие в этом совместном исследовательском проекте. Давайте найдем ответы вместе!

