Нет абсолютного ответа на это. Это зависит от слишком большого количества переменных.
Вот некоторые компромиссы для рассмотрения:
- Для какого устройства / платформы вы разрабатываете?
- Ожидаете ли вы, что ваш пользователь будет использовать это программное обеспечение в качестве основного назначения для своего компьютера (например, может быть, вы разрабатываете какое-то серверное программное обеспечение)
- Кто является вашей целевой аудиторией, домашние пользователи? продвинутые пользователи?
- Вы делаете реалистичные ожидания относительно объема оперативной памяти, которую будет иметь пользователь?
- Принимаете ли вы во внимание, что пользователь будет использовать на этом компьютере также много других программ?
Иногда можно съесть свой торт и съесть его тоже. Например, если вы читаете файл и записываете его обратно, вы можете прочитать его по частям вместо чтения всего файла в память, а затем записать его. В этом случае вы лучше используете память и не снижаете скорость.
Я бы обычно рекомендовал использовать больше оперативной памяти для увеличения скорости, если необходимо. Но только если требования к оперативной памяти реалистичны для вашей целевой аудитории. Например, если вы ожидаете, что домашний пользователь, имеющий 1 ГБ ОЗУ, будет использовать вашу программу, не используйте 600 МБ ОЗУ самостоятельно.
Подумайте об использовании большего объема ОЗУ в этом случае, чтобы повысить скорость и оптимизировать другую часть кода, чтобы использовать меньше ОЗУ.
Изменить:
О вашей конкретной ситуации с кэшированием изображений. Я думаю, что было бы лучше, если бы вы позволили пользователю установить объем кэширования, который он хотел бы выполнить в качестве опции. Таким образом, люди с большим количеством оперативной памяти могут повысить ее для лучшей производительности, а люди с небольшим объемом оперативной памяти могут установить ее на низком уровне.