Welcome! Log In Create A New Profile

Advanced

[PATCH 1 of 2] Optimized murmurhash performance

Matthew Marangoni
February 03, 2018 11:42AM
# HG changeset patch
# User Matthew Marangoni <matthew.marangoni@gmail.com>
# Date 1516655725 28800
# Mon Jan 22 13:15:25 2018 -0800
# Node ID e84b174c99ca39155e80dbb7458181e20190b70b
# Parent cbf59d483c9cd94dc0fb05f1978601d02af69c20
Optimized murmurhash performance.

Improved performance for little endian machines.

diff -r cbf59d483c9c -r e84b174c99ca src/core/ngx_murmurhash.c
--- a/src/core/ngx_murmurhash.c Tue Jan 16 13:52:03 2018 +0300
+++ b/src/core/ngx_murmurhash.c Mon Jan 22 13:15:25 2018 -0800
@@ -16,10 +16,14 @@
h = 0 ^ len;

while (len >= 4) {
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ k = *(u_int32_t*)data;
+#else
k = data[0];
k |= data[1] << 8;
k |= data[2] << 16;
k |= data[3] << 24;
+#endif

k *= 0x5bd1e995;
k ^= k >> 24;
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[PATCH 1 of 2] Optimized murmurhash performance

Matthew Marangoni 528 February 03, 2018 11:42AM

[PATCH 2 of 2] Updated __ORDER_LITTLE_ENDIAN__ to match NGX standards and changed to uint32_t data type

Matthew Marangoni 188 February 03, 2018 11:42AM

Re: [PATCH 2 of 2] Updated __ORDER_LITTLE_ENDIAN__ to match NGX standards and changed to uint32_t data type

Valentin V. Bartenev 195 February 03, 2018 08:22PM

Re: [PATCH 2 of 2] Updated __ORDER_LITTLE_ENDIAN__ to match NGX standards and changed to uint32_t data type

Matthew Marangoni 231 February 12, 2018 03:20PM

Re: [PATCH 2 of 2] Updated __ORDER_LITTLE_ENDIAN__ to match NGX standards and changed to uint32_t data type

Maxim Dounin 360 February 13, 2018 07:32AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 286
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready