Time benchmark of built-in hashing in Python#

This is a benchmark of different ways to perform inplace conjugation of a complex numpy array.

import random
import pyquickbench

def randbytes(n):
    return {'data':random.randbytes(n)}

import hashlib

def md5(data):
    return hashlib.md5(data)

def sha1(data):
    return hashlib.sha1(data)

def sha224(data):
    return hashlib.sha224(data)

def sha256(data):
    return hashlib.sha256(data)

def sha384(data):
    return hashlib.sha384(data)

def sha512(data):
    return hashlib.sha512(data)

def sha3_224(data):
    return hashlib.sha3_224(data)

def sha3_256(data):
    return hashlib.sha3_256(data)

def sha3_384(data):
    return hashlib.sha3_384(data)

def sha3_512(data):
    return hashlib.sha3_512(data)

all_funs = [
    md5         ,
    sha1        ,
    sha224      ,
    sha256      ,
    sha384      ,
    sha512      ,
    sha3_224    ,
    sha3_256    ,
    sha3_384    ,
    sha3_512    ,
]

all_sizes = [2**n for n in range(25)]
basename = 'Hashing_bench'
timings_filename = os.path.join(timings_folder, basename+'.npz')

n_repeat = 1

all_values = pyquickbench.run_benchmark(
    all_sizes                   ,
    all_funs                    ,
    setup = randbytes           ,
    n_repeat = n_repeat         ,
    filename = timings_filename ,
    ShowProgress=True           ,
)

pyquickbench.plot_benchmark(
    all_values                              ,
    all_sizes                               ,
    all_funs                                ,
    show = True                             ,
    title = 'Built-in hashing in Python'    ,
)
Built-in hashing in Python
relative_to_val = {pyquickbench.fun_ax_name:"sha1"}

pyquickbench.plot_benchmark(
    all_values                              ,
    all_sizes                               ,
    all_funs                                ,
    relative_to_val = relative_to_val       ,
    show = True                             ,
    title = 'Built-in hashing in Python'    ,
    ylabel = 'Time relative to sha1'        ,
)
Built-in hashing in Python

Gallery generated by Sphinx-Gallery