|
Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
|
doc_id: "LOG-PERF-001" doc_title: "Logger System 성능 벤치마크" doc_version: "1.0.0" doc_date: "2026-04-04" doc_status: "Released" project: "logger_system"
SSOT: This document is the single source of truth for Logger System 성능 벤치마크.
언어: English | 한국어
최종 업데이트: 2025-11-28 버전: 3.0.0
이 문서는 포괄적인 성능 벤치마크 결과와 업계 표준 로깅 라이브러리와의 비교를 제공합니다.
logger system은 모든 테스트 시나리오에서 뛰어난 성능을 제공합니다:
플랫폼: Apple M1 (8코어) @ 3.2GHz
컴파일러: Clang 15.0 (macOS)
최적화 플래그: -O3 -march=native -DNDEBUG, LTO, PGO 활성화
| 모드 | 처리량 | 지연시간 (avg) | 지연시간 (p99) | 메모리 |
|---|---|---|---|---|
| 비동기 (logger_system) | 4.34M msg/s | 148 ns | 312 ns | 1.8 MB |
| 동기 (파일 작성자) | 515K msg/s | 1,940 ns | 4,200 ns | 256 KB |
| 콘솔만 | 583K msg/s | 1,715 ns | 3,800 ns | 128 KB |
분석:
| 스레드 | Logger System | spdlog 비동기 | spdlog 동기 | 개선율 |
|---|---|---|---|---|
| 1 | 4.34M msg/s | 5.35M msg/s | 515K msg/s | -19% vs spdlog 비동기 |
| 4 | 1.07M msg/s | 785K msg/s | 210K msg/s | +36% vs spdlog 비동기 |
| 8 | 412K msg/s | 240K msg/s | 52K msg/s | +72% vs spdlog 비동기 |
| 16 | 390K msg/s | ~180K msg/s* | ~40K msg/s* | +117% vs spdlog 비동기 |
핵심 인사이트:
| 메트릭 | logger_system | spdlog 비동기 | 승자 |
|---|---|---|---|
| 처리량 | 4.34M msg/s | 5.35M msg/s | spdlog (+23%) |
| 지연시간 (avg) | 148 ns | 2,325 ns | logger_system (15.7x) |
| 지연시간 (p99) | 312 ns | 4,850 ns | logger_system (15.5x) |
| 메모리 | 1.8 MB | 4.2 MB | logger_system (-57%) |
결론: logger_system은 23% 처리량을 희생하여 15.7배 낮은 지연시간**과 **57% 적은 메모리 획득
| 메트릭 | logger_system | spdlog 비동기 | 승자 |
|---|---|---|---|
| 처리량 | 1.07M msg/s | 785K msg/s | logger_system (+36%) |
| 지연시간 (avg) | 186 ns | 3,120 ns | logger_system (16.8x) |
| 경합 처리 | 적응형 배칭 | 락 기반 큐 | logger_system |
| 메트릭 | logger_system | Boost.Log | 개선율 |
|---|---|---|---|
| 처리량 (1 스레드) | 4.34M msg/s | 1.2M msg/s | +262% |
| 처리량 (4 스레드) | 1.07M msg/s | 480K msg/s | +123% |
| 지연시간 | 148 ns | 833 ns | 5.6x 낮음 |
| 바이너리 크기 | 2.4 MB | 18.7 MB | 87% 작음 |
| 컴파일 시간 | 15 sec | 127 sec | 8.5x 빠름 |
| 메트릭 | logger_system | glog | 개선율 |
|---|---|---|---|
| 처리량 (비동기) | 4.34M msg/s | 890K msg/s | +387% |
| 지연시간 | 148 ns | 1,124 ns | 7.6x 낮음 |
| 스레드 안전성 | 락프리 핫 패스 | 뮤텍스 기반 | 우수 |
| 백분위수 | 지연시간 | 설명 |
|---|---|---|
| p50 | 142 ns | 중앙값 |
| p90 | 187 ns | 90% 메시지 |
| p95 | 224 ns | 95% 메시지 |
| p99 | 312 ns | 99% 메시지 |
| p99.9 | 487 ns | 99.9% 메시지 |
| p99.99 | 1,240 ns | 최악 0.01% |
| Max | 3,450 ns | 절대 최악 케이스 |
분석:
| 부하 (msg/s) | 평균 지연시간 | p99 지연시간 |
|---|---|---|
| 100K | 148 ns | 298 ns |
| 500K | 152 ns | 312 ns |
| 1M | 161 ns | 334 ns |
| 2M | 178 ns | 389 ns |
| 4M | 203 ns | 467 ns |
핵심 인사이트: 최고 처리량에서도 지연시간이 **매우 안정적**으로 유지됨
| 구성 | 기본 | 최대 | 평균 | 비고 |
|---|---|---|---|---|
| 최소 (콘솔만) | 128 KB | 256 KB | 180 KB | 개발용 |
| 파일 작성자 (동기) | 256 KB | 512 KB | 340 KB | 단순 앱 |
| 비동기 (기본) | 1.8 MB | 2.4 MB | 2.1 MB | 권장 |
| 고성능 | 4.2 MB | 6.8 MB | 5.3 MB | 최대 처리량 |
| 로거 | 기본 메모리 | 최대 메모리 | 할당/메시지 |
|---|---|---|---|
| logger_system | 1.8 MB | 2.4 MB | 0.12 |
| spdlog | 4.2 MB | 7.1 MB | 0.87 |
| Boost.Log | 12.4 MB | 18.9 MB | 2.34 |
| glog | 6.8 MB | 10.2 MB | 1.45 |
| log4cxx | 15.7 MB | 24.3 MB | 3.12 |
결론: logger_system은 **가장 낮은 메모리 풋프린트**와 **최소 할당**을 가짐
회귀 임계값:
최종 업데이트: 2025-11-28 버전: 3.0.0
Made with ❤️ by 🍀☀🌕🌥 🌊