Я создаю WP8 с запущенной фоновой задачей (ScheduledAgent). Когда задача выполняется, она загружает из изолированного хранилища граф объектов, сериализованный с помощью protobuf. Модель классов состоит из примерно 10 классов с головным объектом User, у которого есть списки других экземпляров класса. Модель не тривиальная, но и не слишком сложная.
Моя проблема в том, что к моменту восстановления графика большая часть выделенной мне памяти израсходована (примерно 1 МБ для запланированной задачи). Я сузил основной виновник как сам протобуф. Я предполагаю, что метаинформация времени выполнения о модели класса потребляет большую часть памяти, но вызов FlushPool, похоже, вообще не помогает.
Восстановление пустых графов объектов требует примерно столько же памяти, сколько и полностью загруженный объект. Я ищу любой возможный способ очистить все ссылки на память, хранящиеся внутри protobuf, а затем вызываю GC.Collect, надеясь восстановить достаточно, чтобы выполнить фактическую работу. Есть ли что-то другое, чем FlushPool ()?
Спасибо