Недостаточно памяти .NETCF Windows Mobile 5 - PullRequest
2 голосов
/ 25 мая 2011

У нас есть приложение .NETCF 3.5, написанное на C #, где мы используем довольно большие списки и словари объектов, заполненные данными с SQL Server и сохраненные в базах данных SQLCE на устройстве.

Приложение работало очень хорошо до недавнего времени. Объем данных таков, что мы получаем исключения из памяти довольно часто. Используя событие Hibernate, я подтвердил, что ОС действительно просит приложение освободить ресурсы (событие Hibernate запускается постоянно). Проблема в том, что я действительно не вижу ничего существенного, что можно было бы освободить - списки, словари и т. Д. Все используются приложением.

Я знаю, что в Mobile 5/6 существует жесткое ограничение в 32 МБ / приложение (на самом деле только 18-20 МБ на http://dev.fittingsites.com/bol/2008/windows-mobile-6-1-memory-management-changes).

Я немного растерялся. Если приложению требуется около 25 МБ для работы, как оно может работать на Mobile 5? Существуют ли обходные пути, такие как хранение списков или словарей в файлах с отображением в памяти или аналогичные, которые не потребуют много работы (или сильно замедляют работу)?

1 Ответ

1 голос
/ 29 мая 2011

Какой метод вы используете для чтения данных из вашей базы данных SQLCE?SQLCE предоставляет два основных подхода: DataSets и ResultSets .Известно, что наборы данных потребляют огромные объемы памяти и снижают производительность приложений.Если вы используете DataSets, я бы порекомендовал вместо этого переключить ваше приложение на использование RecordSets.Подробнее см. на этой странице .

...