4 ms·
This is a very nice article, I'm just getting confused by the prefix trie part. I'd be happy if someone could explain. The text says that the structure only has
by vinkelhake 12y ago
This is a very nice article, I'm just getting confused by the prefix trie part. I'd be happy if someone could explain. The text says that the structure only has eight pointers per node and fills one cache line exactly.
But looking at the code, the struct is larger than 64 bytes so it won't fit into one cache line. Even if we just look at the first 64 bytes of the struct (the array), the nodes are allocated using plain calloc which (on your typical linux system, but not guaranteeed) is going to give you memory aligned to 16 bytes.
- acidx 12y agoAuthor here. Yes, you're right -- the whole structure is larger than 64 bytes, but the pointers to the child nodes all fit in 8 pointers only (in contrast with the previous version, which had 256 pointers instead). Maybe I need to adjust the wording to make this clear.
- mangamadaiyan 12y agoThe section on Coroutines links to itself; perhaps you meant it to link to your other article on Coroutines? (http://tia.mat.br/blog/html/2012/09/29/asynchronous_i_o_in_c_with_coroutines.html http://tia.mat.br/blog/html/2012/09/29/asynchronous_i_o_in_c...)
- acidx 12y agoIt was supposed to be linking to the Coroutine article on Wikipedia. Fixed.