Case and analysis proven
Actually, there was an error on the analysis. I predicted the in-memory merge to be RAM bound because of the log2N comparisons per record all going to RAM to fetch the keys. That is wrong, the records at the top of the buffers stay on the L1 cache. Only the replacement for the one at the top of the heap has to be loaded from RAM. So, it is actually CPU bound.
I'll try and add the sort to split files into it tomorrow.
I used my own Sort::Packed for that.
In reply to Re^11: Can you improve upon my algorithm.
by salva
in thread Can you improve upon my algorithm.
by BrowserUk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |