pythonlinuxmurmurhash

Do we need to consider python platform bits or Linux ones for finding the suitable pyhash - murmur3_x**_128 function?


I want to use pyhash murmur3 128 bits algorithm in my program.
It has 2 different variants i.e. murmur3_x64_128 and murmur3_x86_128.
Is it referring to python platform or Unix platform?

Eg usage: (Both are working on my system, but my python and Linux both are 64 bit.)

hasher = pyhash.murmur3_x86_128()
print(hasher("foo"))
hasher = pyhash.murmur3_x64_128()
print(hasher("foo"))

# Output:
# 21517627922880161342356693896102748869
# 323517048543817317219522474765345119020

Solution

  • It is referring to the platform of your machine, not Python. As you note, they are not the same hash, and can not be used interchangeably.

    murmur3_x64_128 has better performance than murmur3_x86_128 on 64-bit platforms, but has pretty bad performance on 32-bit platforms that do not have native 64-bit operations.

    murmur3_x86_128 has equal performance on both platforms.