Benchmarks
This section highlights the performance benchmarks for the hashing algorithms provided by imgdd compared to the imagehash library. The following benchmarks demonstrate significant speed improvements across supported algorithms.
CPU Details
- Architecture: x86_64
- CPU: Intel(R) Core(TM) i5-8365U CPU @ 1.60GHz
- Cores: 4 (8 Threads)
- Max Frequency: 4.1 GHz
- Base Frequency: 1.6 GHz
Rust Benchmarks
Below is a snapshot of local bare metal benchmarks taken on using Criterion directly on the imgddcore Rust crate, based on the hardware details above.
| Algorithm |
Time (ms) |
Measurements |
| aHash |
0.00021894 |
100 |
| mHash |
0.00045627 |
100 |
| dHash |
0.00020319 |
100 |
| pHash |
0.020221 |
100 |
| wHash |
0.0021888 |
100 |
Python Integration Benchmarks
The table below compares the local performance of imgdd with the imagehash library, based on the hardware details above.
dHash
| Metric |
imgdd (ms) |
imagehash (ms) |
Improvement (%) |
| Min Time |
1.2488 |
4.3166 |
71.07 |
| Max Time |
3.5945 |
9.5155 |
62.22 |
| Avg Time |
1.6148 |
5.5629 |
70.97 |
| Median Time |
1.3985 |
5.4049 |
74.12 |
aHash
| Metric |
imgdd (ms) |
imagehash (ms) |
Improvement (%) |
| Min Time |
1.683 |
5.666 |
70.29 |
| Max Time |
3.207 |
15.403 |
79.18 |
| Avg Time |
2.055 |
8.346 |
75.38 |
| Median Time |
2.043 |
7.683 |
73.41 |
pHash
| Metric |
imgdd (ms) |
imagehash (ms) |
Improvement (%) |
| Min Time |
1.798 |
5.726 |
68.60 |
| Max Time |
4.063 |
20.099 |
79.78 |
| Avg Time |
2.361 |
7.896 |
70.10 |
| Median Time |
2.138 |
7.196 |
70.29 |
wHash
| Metric |
imgdd (ms) |
imagehash (ms) |
Improvement (%) |
| Min Time |
1.750 |
42.418 |
95.87 |
| Max Time |
4.422 |
97.446 |
95.46 |
| Avg Time |
2.192 |
62.656 |
96.50 |
| Median Time |
1.978 |
60.397 |
96.72 |
Summary
- In Python, imgdd consistently outperforms imagehash by ~60%–95%, demonstrating a significant reduction in hashing time per image.
- imgddcore rust benchmarks achieve sub-1 ms performance.