Я следую за этим вопросом здесь
У меня проблема в том, что у меня есть некоторые большие объекты, поступающие из MSMQ, в основном строки. Я сузил свои проблемы с памятью до тех объектов, которые создаются в куче больших объектов (LOH) и, следовательно, фрагментируют их (подтвердил это с некоторой помощью профилировщика).
В вопросе, который я разместил выше, я нашел обходные пути, в основном в виде разбиения String на массивы символов, что я и сделал.
Проблема, с которой я столкнулся, заключается в том, что в конце обработки строки (в какой бы то ни было форме) мне нужно отправить эту строку в другую систему, которую я не могу контролировать. Итак, я подумал о следующем решении разместить эту строку в LOH:
Что бы я ни делал - так или иначе - строка должна быть полной (без массивов символов или сжатия).
Я застрял здесь? Я думаю, было ли здесь ошибкой использование управляемой среды и должны ли мы перекусить пулей и перейти на среду типа C ++.
Спасибо, Яннис
РЕДАКТИРОВАТЬ: Я сузил проблему до ровно кода, размещенного здесь
Большая строка, которая проходит через помещен в LOH. Я удалил все модули обработки из точки, где я получил сообщение, и тенденция потребления памяти осталась прежней.
Думаю, мне нужно изменить способ передачи этого WorkContext между системами.