From: Pavel Stehule on
Hello,

this patch significantly reduces memory usage of ispell dictionaries.

without patch (Czech dictionary, 64bit linux):

cspell: 48816784 total in 5930 blocks; 89496 free (1587 chunks); 48727288 used
Ispell dictionary init context: 19226672 total in 12 blocks; 1742624
free (34 chunks); 17484048 used

final:
cspell: 48816784 total in 5930 blocks; 89496 free (1587 chunks); 48727288 used

46.5 MB (long mem) + 18.3 MB (short mem)

with patch:

cspell: 893584 total in 80 blocks; 11760 free (10 chunks); 881824 used
Ispell dictionary simple context: 24647364 total in 188 blocks;
122464 free; 24524900 used
Ispell dictionary init context: 2482224 total in 3 blocks; 24512
free (34 chunks); 2457712 used
Ispell dictionary simple init context: 8259489 total in 63 blocks;
59570 free; 8199919 used
final
cspell: 893584 total in 80 blocks; 11760 free (10 chunks); 881824 used
Ispell dictionary simple context: 24647364 total in 188 blocks;
122464 free; 24524900 used

0.85 + 23.5 MB (long mem) + 2.4 + 7.9 MB (short mem)

Regards
Pavel Stehule