Я пытаюсь создать приложение для «рисования жестов», которое в основном представляет собой слайд-шоу изображений с установленными интервалами. Я заметил, что всякий раз, когда я загружаю новое изображение, например, менее 1 МБ, использование моего приложения в памяти увеличивается более чем на 20 МБ, каждый раз при загрузке нового изображения.Ошибка загрузки памяти JavaFX?
Я пробовал два подхода, первый из них был с пользовательским «ImagePane» - для того, чтобы изменить размер изображения с помощью окна - которое загружает данное изображение в таблицу стилей (-fx-background-image
), а второй использует обычный ImageView с использованием метода setImage()
. В обоих случаях я заметил значительное увеличение памяти.
Теперь мой вопрос: это нормальное поведение, известная утечка памяти или я делаю что-то неправильно? Я могу предоставить весь код, если это необходимо, это просто большой прототип беспорядка на данный момент, хотя ...
Вы сравниваете размер изображения * файла * с памятью, необходимой для отображения изображения? Это совершенно разные вещи. –
Ну, я знаю, что они есть, но я до сих пор не могу понять, почему использование ОЗУ увеличилось бы более чем на 20 МБ каждый раз, когда загрузится изображение 2000х3000 на 800кБ. – Szernex
2000x3000 = 6 миллионов пикселей. Каждый пиксель представлен 4 байтами (по одному для красного, зеленого, синего и альфа). 4 байта x 6 миллионов пикселей = 24 миллиона байт. Кажется, имеет смысл для меня. –