У меня есть приложение, которое иногда использует большой объем данных. Пользователь имеет возможность загружать несколько файлов, которые используются на графическом дисплее. Если пользователь выбирает больше данных, чем может обрабатывать ОС, приложение сильно падает. В моей тестовой системе это число составляет около 2 гигабайт физической памяти.
Что такое хороший способ справиться с этой ситуацией? Я получаю "плохой дистрибутив", выброшенный из новых и проверенных ловушек, но я все еще сталкиваюсь с крахом. Мне кажется, что я нахожусь в грязных водах, загружая это много данных, но это требование этого приложения для обработки такого рода большой нагрузки данных.
Изменить: сейчас я тестирую 32-битную систему Windows, но приложение будет работать на различных вариантах Windows, Sun и Linux, в основном 64-битных, но 32.
Обработка ошибок не является сильной: она просто обертывает основной код создания с помощью блока catch try, причем catch ищет любое исключение за другую одноранговую жалобу о невозможности ловушки bad_alloc каждый раз.
Я думаю, что вы, ребята, правы, мне нужна система управления памятью, которая не загружает все эти данные в ОЗУ, это просто похоже.
Edit2: Лютер сказал это лучше всего. Спасибо, парень. На данный момент мне просто нужен способ предотвращения сбоя, который с надлежащей обработкой исключений должен быть возможен. Но по дороге я буду реализовывать это решение.