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