У нас есть приложение .NETCF 3.5, написанное на C#, в котором мы используем несколько довольно больших списков и словарей объектов, заполненных данными с SQL Server и сохраняемых в базах данных SQLCE на устройстве.
Приложение работало очень хорошо до недавнего времени. Объем данных таков, что мы довольно часто получаем исключения Out of memory. Используя событие Hibernate, я подтвердил, что ОС действительно просит приложение освободить ресурсы (событие Hibernate запускается постоянно). Загвоздка в том, что я действительно не вижу ничего существенного, что можно было бы освободить - списки, словари и т. д. все используются приложением.
Я знаю, что в Mobile 5/6 существует жесткое ограничение в 32 МБ на приложение (на самом деле только 18–20 МБ, согласно http://dev.fittingsites.com/bol/2008/windows-mobile-6).-1-memory-management-changes).
Я немного в недоумении здесь. Если для работы приложению требуется около 25 МБ, как оно может работать на Mobile 5? Существуют ли обходные пути, такие как хранение списков или словарей в файлах с отображением памяти или что-то подобное, которые не потребовали бы тонны работы (или сильно замедлили бы работу)?