НЕ ИСПОЛЬЗУЙТЕ СТРОКИ.
Строки будут копировать и выделять новую строку для каждой операции. То есть, если у вас есть строка 50 МБ и вы добавляете один символ, пока не произойдет сборка мусора, у вас будет две (приблизительно) строки 50 МБ.
Затем вы добавляете еще один символ, у вас будет 3 .... и т. Д.
С другой стороны, правильное использование StringBuilder, то есть использование «Append», не должно иметь проблем с 100 МБ.
Еще одной оптимизацией является создание StringBuilder с вашим предполагаемым размером,
StringBuilder SB;
SB = новый StringBuilder (емкость); // в качестве емкости предложенный начальный размер
Используйте stringBuider для хранения вашей большой строки, а затем используйте append.
НТН