Это хорошо, будем надеяться, что проблему вы решите кардинально.

Но почему Вы так категорично отрицаете идею сброса содержимого памяти на диск, когда она заполняется до критического уровня? Вы писали, что это замедлит оптимизацию. Неужели, если 1 раз в час программа будет сливать на диск результаты оптимизации, это существенно повлияет на скорость оптимизации?