Бенчмарки производительности¶
Сравнительные тесты производительности 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)¶
Только 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
📝 Примечания¶
- Справедливость сравнения:
- PII Anonymizer измеряется напрямую через library (без накладных расходов HTTP)
- Presidio измеряется через HTTP API (с накладными расходами сети)
-
Это даёт Presidio небольшое преимущество в честности сравнения
-
Различия в методах:
- PII Anonymizer: только regex паттерны
- Presidio: NLP модели + regex
-
Presidio более универсален, но медленнее
-
Типы PII:
- PII Anonymizer: специфичные для РФ (паспорт, СНИЛС, ИНН) + технические (API ключи, SSH)
- 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