Небольшие файлы не сжимаются особенно хорошо, поэтому вы можете не получить большого сжатия.
Хотя загрузка файлов будет быстрой, потому что они меньше, распаковка увеличивает время.Вам нужно поэкспериментировать, чтобы увидеть, что быстрее.
Я думаю, что реальные проблемы будут связаны с эффективностью файловой системы, когда дело доходит до перебора всех маленьких файлов, особенно если они все водна папкаWindows печально известна своей неэффективностью, когда в папках содержится много файлов.
Я бы подумал о том, чтобы сделать что-то вроде записи их в один файл без сжатия, который мог бы быть перенаправлен в память - возможно, не обязательно смежной, такэто может быть проблемой.Но идея состоит в том, чтобы поместить их все в один файл.Затем напишите какой-нибудь индекс, который связывает имя файла или другой идентификатор со смещением, по которому можно определить местоположение изображения в памяти.
В конце могут быть добавлены новые изображения, и индекс соответствующим образом обновлен.
Это не фантастика, но это то, чего ты пытаешься избежать.Архив или даже файловая система дает вам большую мощность и гибкость, но за счет эффективности.Когда вы знаете, что хотите сделать, иногда проще - лучше.
Я бы подумал о реализации решения, которое считывает файлы из папки, другое, которое делит файлы на подпапки и подпапки так, чтобы их было не более 100 илитак что файлы в любой папке, а затем время эти решения, чтобы вам было с чем сравнить.Я думаю, что простой индексированный файл будет достаточно быстрым, чтобы вам даже не нужно было предварительно загружать изображения, как вы предлагаете, - просто извлекайте их по мере необходимости и сохраняйте их, как только они останутся в памяти.