Перейти к содержанию

Бенчмарки производительности

Сравнительные тесты производительности PII Anonymizer и аналогов.

📊 Методология

Что измеряем

  • Скорость анонимизации - количество текстов, обработанных в секунду
  • Общее время - время обработки всего набора тестовых данных

Что НЕ измеряем

  • Время запуска сервиса
  • Время инициализации/прогрева
  • Потребление памяти
  • Время ответа HTTP API (для PII Anonymizer измеряем напрямую через library)

Тестовые данные

  • 1,700 текстов с различными типами PII
  • Типы PII: email, телефон, IP, паспорт, СНИЛС, AWS ключи, SSH ключи
  • Комбинированные тексты с несколькими PII
  • Разнообразные форматы для каждого типа

Условия тестирования

  • PII Anonymizer: напрямую через library (без HTTP)
  • Presidio: через HTTP API (Docker контейнер)
  • Release сборки для всех сервисов

🚀 Результаты

PII Anonymizer

Метрика Значение
Текстов обработано 1,700
Общее время 0.007 сек
Производительность 243,473 текстов/сек

Presidio

Метрика Значение
Текстов обработано 1,100
Общее время 13.692 сек
Производительность 80 текстов/сек

ℹ️ Бенчмарк Presidio выполнен через HTTP API (2 контейнера: analyzer + anonymizer)

📈 Сравнительная таблица

Сервис Производительность Относительная скорость
PII Anonymizer 243,473 текстов/сек 1.0x (базовый)
Presidio 80 текстов/сек 0.0003x (в 3,043 раза медленнее)

📊 Визуальное сравнение

PII Anonymizer: █████████████████████████████████████████████████████████████████████ 243,473 текстов/сек
Presidio:       ▏                                                                   80 текстов/сек

🔬 Технические детали

PII Anonymizer

  • Язык: Rust
  • Метод обнаружения: Regex паттерны
  • Стратегия: Mask (по умолчанию)
  • Паттернов: 14 активных
  • Среда выполнения: Native binary, release сборка

Presidio

  • Язык: Python
  • Метод обнаружения: NLP (spaCy) + Regex
  • Стратегия: Replace (по умолчанию)
  • Среда выполнения: Docker контейнер

📂 Структура бенчмарков

benchmarks/
├── benchmark_pii_anonymizer.rs    # Бенчмарк PII Anonymizer (Rust)
├── benchmark_presidio.py          # Бенчмарк Presidio (Python)
├── run_benchmarks.sh              # Главный скрипт запуска
├── scripts/
│   └── presidio_server.sh         # Скрипт управления Presidio
├── data/                          # Тестовые данные (генерируются автоматически)
└── results/                       # Результаты бенчмарков
    ├── pii_anonymizer.log
    ├── presidio.log
    └── benchmark_results.txt

🏃 Запуск бенчмарков

Полный бенчмарк (PII Anonymizer + Presidio)

cd benchmarks
./run_benchmarks.sh

Только PII Anonymizer

cargo run --release --bin benchmark_pii_anonymizer

Только Presidio

# Запуск Presidio
bash benchmarks/scripts/presidio_server.sh start

# Запуск бенчмарка
python3 benchmarks/benchmark_presidio.py http://localhost:5002

# Остановка Presidio
bash benchmarks/scripts/presidio_server.sh stop

📝 Примечания

  1. Справедливость сравнения:
  2. PII Anonymizer измеряется напрямую через library (без накладных расходов HTTP)
  3. Presidio измеряется через HTTP API (с накладными расходами сети)
  4. Это даёт Presidio небольшое преимущество в честности сравнения

  5. Различия в методах:

  6. PII Anonymizer: только regex паттерны
  7. Presidio: NLP модели + regex
  8. Presidio более универсален, но медленнее

  9. Типы PII:

  10. PII Anonymizer: специфичные для РФ (паспорт, СНИЛС, ИНН) + технические (API ключи, SSH)
  11. Presidio: международные (email, телефон, кредитные карты, person name)

📊 Выводы

PII Anonymizer показывает превосходную производительность благодаря: - Компилируемому языку Rust - Оптимизированным regex паттернам - Отсутствию ML моделей и NLP анализа - Минимальным накладным расходам - В 3,043 раза быстрее Presidio!

Presidio обеспечивает более интеллектуальное обнаружение: - Контекстный анализ с NLP - Распознавание имён и локаций - Но ценой значительно большей вычислительной стоимости

Ключевые цифры

  • PII Anonymizer: 243,473 текстов/сек (0.007 сек на 1,700 текстов)
  • Presidio: 80 текстов/сек (13.7 сек на 1,100 текстов)
  • Разница: PII Anonymizer быстрее в 3,043 раза

Выбор зависит от ваших требований к производительности и типам обнаруживаемых PII!


Последнее обновление: 11 апреля 2026