From d1e6f34eee311d0925818e277afbb4034cb56a8e Mon Sep 17 00:00:00 2001 From: TimothyLottes Date: Thu, 10 Nov 2016 11:14:09 -0500 Subject: [PATCH] Add files via upload --- 20130707.html | 10 ++++++++++ index.html | 1 + 2 files changed, 11 insertions(+) create mode 100644 20130707.html diff --git a/20130707.html b/20130707.html new file mode 100644 index 0000000..1295576 --- /dev/null +++ b/20130707.html @@ -0,0 +1,10 @@ +
+

20130707 - Slab Hash

+
+ +Something I decided not to use but wanted to write down for possible future reference. This idea isn't new either... Start with a slab size. Slab being some prime multiple of the size of a cacheline. Prime to increase cacheline set aliasing when cachelines of slabs are not always fully used. Take a large chunk of memory which has N slabs. Treat this memory as a hash table with something like MurmurHash3 as a hash function. Instead of traditional {key, pointerToData} which usually implies usually 2 cache misses even with no key collisions, store {key, data} in the slab (avoids a second cache miss). + +
+ + + diff --git a/index.html b/index.html index d373b2a..a727ab2 100644 --- a/index.html +++ b/index.html @@ -109,6 +109,7 @@ Below this is active random migration (416 prior posts still to filter through) 20131126 - Random Next Generation Notes
20130825 - Modern Memory Mapping
20130808 - Runtime Recompile Reloaded
+20130707 - Slab Hash
20130325 - Understanding WIN32 GetRawInputBuffer()

2012