Я записывал программу для захвата экрана с заданным интервалом, и когда я начал тестировать, я обнаружил, что получаю исключение OutOfMemoryException почти сразу после того, как он начинает записывать снимки. Я попытался выделить больше памяти - я дал ей 256 м, но это вряд ли помогло. Все, что он сделал, это сделать это на 2 или 3 секунды, прежде чем выбросить исключение и снова свернуть.Java: OutOfMemory с использованием Robot # createScreenCapture (Rectangle)
Я понимаю, что метод createScreenCapture (...) использует много памяти, но я видел примеры программ, которые могут записываться в течение большого количества раз с использованием того же метода - как они это делают?
Редактировать: Я использовал совет ваших ребят, и теперь я не получаю OutOfMemoryExceptions! Ура! Я взял маршрут, который включает сохранение фотографий на жесткий диск. Тем не менее, на самом деле их запись в архивный файл занимает довольно много времени. Запись 63 кадров в архивный файл занимает почти 2 минуты!
Я не могу предоставить какой-либо код, потому что я переписываю часть ввода-вывода. Работа над улучшением ситуации.
Чтобы не записывать изображение в память на всю жизнь программы, оно сохраняет его на жесткий диск? –
* «Сохраняет его на жесткий диск?» * Да. –
Хорошо, я посмотрю. Есть ли определенная процедура, которую я должен использовать для сохранения на жестком диске? Я думал о преобразовании изображений в массив int [], а затем просто сохранял это, так как массивы сериализуемы. –