Skip to content

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.