Benchmark Environment
- Hardware: MacBook Air with Apple M2 chip
- Memory: 16GB RAM
- OS: macOS Sonoma 14.6.1
- Test Data: 30,000 PDFs (total size: 8.56 GB)
-
Configuration: Single-threaded operations, default
compression settings
Key Findings
1. Execution Time
-
Node.js implementations (7zip and jszip) are the fastest, completing
in under 1 minute
-
Go, Rust, Python, and Java implementations perform similarly, taking
2-3 minutes
-
C++ implementation with libzip is notably slower, taking over 43
minutes
2. Memory Usage
- Most implementations are memory efficient (23-34 MB)
- Java implementation uses moderate memory (233 MB)
-
Node.js jszip implementation has high memory usage (8.6 GB),
suggesting potential memory management issues
3. Compression Ratio
- C++ libzip achieves the best compression ratio at 54.92%
-
Most other implementations achieve consistent compression ratios
around 17%
- Node.js jszip shows negligible compression (-0.05%)
Note: All current implementations are single-threaded and use default
compression settings. Significant performance improvements could be
achieved through multi-threading and optimized compression
configurations.