Just some performance benchmarks:
10k lines, 10-character random lines maximum per line.
Rate slipset marcog slipset 47.6/s -- -16% marcog 56.7/s 19% --
100 thousand lines, the number of characters is 10 characters per line.
Rate slipset marcog slipset 3.02/s -- -34% marcog 4.60/s 52% -
1000 thousand lines, 10-character random lines per line.
s/iter slipset marcog slipset 4.09
1k lines, 100 characters for each line.
Rate slipset marcog slipset 379/s -- -12% marcog 431/s 14% --
100k lines, 100 characters of random lines maximum per line
Rate slipset marcog slipset 2.15/s -- -30% marcog 3.08/s 44% --
1k lines, 1000-character random lines maximum per line
Rate slipset marcog slipset 133/s -- -10% marcog 148/s 11% --
100 thousand lines, maximum 1000-character line per line
Rate slipset marcog slipset 1.01/s -- -18% marcog 1.22/s 22% --
Memory efficiency
Marcog: 100k lines, 1000 characters of random lines per line:
Memory usage summary: heap total: 163_259_635, heap peak: 61_536_800, stack peak: 17_648 total calls total memory failed calls malloc| 307_425 162_378_090 0 realloc| 1_461 96_878 0 (nomove:1_218, dec:1_026, free:0) calloc| 12_762 784_667 0 free| 307_598 155_133_460
Slipset: 100k lines, 1000-character random lines, maximum for each line:
Memory usage summary: heap total: 647_103_469, heap peak: 118_445_776, stack peak: 17_648 total calls total memory failed calls malloc| 508_089 186_752_811 0 realloc| 399_907 459_553_775 0 (nomove:334_169, dec:196_380, free:0) calloc| 12_765 796_883 0 free| 507_584 256_315_688