Я создал небольшую анимацию для игры, которая использует набор изображений в качестве кадров, и текущее изображение, чтобы визуализировать изменения за определенное количество времени, чтобы создать иллюзию анимации. Я сделал это двумя разными способами, и мне интересно, какой из них более эффективен в использовании.Неужели компьютер загружен и выгружает изображение каждый раз, когда требуется новое изображение или чтобы все изображения загружались одновременно? (SDL)
Способ 1: Одно изображение загружается и отображается. Когда нужно визуализировать другое изображение, вызывается функция, которая выгружает текущее изображение и загружает и отображает новый.
Способ 2: Все изображения, необходимые для анимации, загружаются один раз и затем визуализируются по мере необходимости.
Проще говоря: Метод 1 выгружает текущее изображение и загружает на новый каждый раз, когда требуется другое изображение, и метод 2 сохраняет все изображения, необходимые загружены сразу.
Так что в основном вопрос заключается в том, что лучше постоянно загружать и выгружать изображения, чтобы они были как можно меньше загружены, или чтобы иметь много загрузок в любое время и не выгружать/загружать что-либо во время программы? Имеет ли компьютер более тяжелое время загрузки и выгрузки изображений или одновременного хранения нескольких изображений?
Я бежал, смотря на диспетчер задач, запуская каждый метод. Использование ЦП метода 1 (загрузка и разгрузка) колебалось между 29% и 30%, в то время как метод 2 колебался между 28% и 29%.
Похоже, что сохранение всех загруженных изображений лучше в соответствии с этими статистическими данными, но причина, по которой я им не верю, заключается в том, что программа загружает только семь изображений.
Как игра становится больше, не может быть сотни изображений, загруженных на один раз (способ 2) или изображение загружается и выгружается почти каждый кадр (метод 1). Какой метод менее интенсивный? Спасибо за ваше время.
Зависит. При загрузке всех изображений, которые требуется сразу, вы держите их в ОЗУ. Если вы не заботитесь об использовании памяти, вы можете технически загрузить их все в память без проблем (метод 2). Если вы хотите получить лучшее из обоих миров, вы можете иметь приоритетную загрузку (т. Е. Загружать X-много изображений и заменять наименее используемые, когда вам нужен новый) – mascoj