powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Хранение приложением большого числа картинок малого размера на разных ОС
48 сообщений из 48, показаны все 2 страниц
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644696
Фотография mraklbrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Столкнулся с такой проблемой - разрабатывается кросплатформенное приложение (Windows, Android, возможно,IOS).
Приложение должно хранить большое количество (>10-30k) картинок размером 10-200 Кб.
При использовании пользователем часто будет осуществляться открытие какого-либо файла.
Однако, сами файлы почти никогда изменяться не будут.
Суть в том, что, по опыту сталкивался с таким количеством файлов на Windows и знаю, что могут быть тормоза.
+ удаление, распаковка приложения, перемещение информации с карты памяти на память телефона и обратно по желанию пользователя - будут долгими.
Вопрос в том - как хранить - в Sqlite?
Есть ещё бредовая идея - самому написать формат хранения и хранить как несколько больших файлов.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644705
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в zip-архиве.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644706
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftв zip-архиве.
Сжатые картинки??
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644707
Фотография mraklbrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Каждый раз при запуске программы распаковывать - плохой вариант.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644710
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилmiksoftв zip-архиве.
Сжатые картинки??Зато один файл.
Можно было бы tar предложить, но zip более распространен во всяких библиотеках.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644712
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mraklbrwКаждый раз при запуске программы распаковывать - плохой вариант.Не при запуске, а перед показом. И не в файл, а в память. Чтобы ускорить распаковку можно даже режим сжатия поставить на "без сжатия".
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644732
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mraklbrw,
тормоза возникают когда такое количество файлов находятся в одной папке . из практики - в папке не должно быть более 1,5к файлов
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644736
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mraklbrwСтолкнулся с такой проблемой - разрабатывается кросплатформенное приложение (Windows, Android, возможно,IOS).

Проблема-то в чём выражается? Фалойвая система это база данных для хранения файлов, лучше ещё ничего не придумали в отношении эффективного хранения.

Храните файлы в папках по 500-1000 файлов в одной папке. Всё.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644739
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmraklbrw,
тормоза возникают когда такое количество файлов находятся в одной папке . из практики - в папке не должно быть более 1,5к файлов
+1
в файловой системе плохо -- придется извращаться с искусственно городимым разделением
файлов по бинарному в моей истории - по двухуровневому (26+10) * (26+10) арному дереву (буквы латинского алфавита + цифры).
Причем файлу приписывали хешкод - в зависимости от которого рассовывали файлы по дереву.
по первым двум символам хешкода брали первый каталог, по вторым - второй.
Этого хватило, контора развалилась до вырождения системы.



Описание файла и хешкода лежало в сайбейз ану для поиска.

Проще сразу взять SQLite
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644740
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftв zip-архиве.
через год работы окажется что 90% картинок - уже упакованные jpg
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644742
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizmiksoftв zip-архиве.
через год работы окажется что 90% картинок - уже упакованные jpgДа и пожалуйста. Хоть все 100%. Суть не в сжатии, суть в одном файле и контейнере, с которым несложно работать.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644744
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lightroom хранит превью-картинки в иерархии каталогов. И не тормозит показе части из сотен тысяч изборажений.
Проверено электроникой.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644751
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksofttchingizпропущено...

через год работы окажется что 90% картинок - уже упакованные jpgДа и пожалуйста. Хоть все 100%. Суть не в сжатии, суть в одном файле и контейнере, с которым несложно работать.
работа на сжатие же будет тратиться?
или можно без сжатия сохранять?
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644752
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в файловой системе - заметная деградация скорости доступа - налицо,
zip архив тоже нужно было бы протестировать на большое число картинок и большое число вставок удалений в/из архива
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644753
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizработа на сжатие же будет тратиться?
или можно без сжатия сохранять?
Многие архиваторы позволяют задавать степень сжатия, и один из вариантов "без сжатия", т.е. просто вставляют файл в архив без изменений.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644755
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант с архивом картинок без сжатия почти эквивалентен варианту выделенного тома под хранение этих картинок. Причём хранения в одном каталоге. Всей разницы - запросы от приложения обрабатывает не файловый реквестор, а библиотека сжатия/разжатия. Когда количество перевалит за десяток тысяч, то тормоза начнутся того же порядка, что и при хранении в файловой системе, и даже по почти той же самой почти причине - невозможности кэшировать на уровне приложения местоположение отдельного файла, минуя файловый реквестор или библиотеку (де)компрессии. На кэш ОС надежды мало. Держать файл постоянно открытым через библиотеку декомпрессии, чтобы она не сбрасывала каталог архива?

Я бы скорее предложил подумать о потоковом хранении метафайлов в файле-библиотеке - это позволит на старте одни раз прочитать и закэшить в приложении местоположение отдельных метафайлов в большом файле библиотеки изображений и считывать их, когда потребуются, сразу по известным смещению и размеру.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644757
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно в одну большую картинку запихнуть все. В играх так делают.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644763
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМожно в одну большую картинку запихнуть все. В играх так делают.
А вот это и будет извращение
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644765
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Ttchingizработа на сжатие же будет тратиться?
или можно без сжатия сохранять?
Многие архиваторы позволяют задавать степень сжатия, и один из вариантов "без сжатия", т.е. просто вставляют файл в архив без изменений.
ок.
а если картинок много, то, конечно, не придется выискивать какие то из них, при
помощи разных описаний картники (я на селект фром вере намекаю) и
не нужно искать потерянные-отсутствующие картинки (которые появятся в результате ошибок
в приложении)?
и утилитой zip.exe пользоваться удобнее, чем утилитой sqlite3.exe?
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644771
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>mraklbrw, вчера, 23:28 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1293129&msg=21409526] [21409526]

>...Вопрос в том - как хранить …
А если так:
1. все картинки в одном(?) бинарном файле,
2. Идентификатор, начало, длина в Sqlite
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644776
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mraklbrw+ удаление, распаковка приложения, перемещение информации с карты памяти на память телефона и обратно по желанию пользователя - будут долгими.

С другой стороны, хранение картинок в СУБД имеет существенный недостаток - невозможно пользоваться готовыми утилитами для их обработки и на каждый чих писать какой-то код.
ИМХО, все перечисленное - не настолько частые операции чтобы под них подстраиваться.
Сложнее аккуратно сделать откаты транзакций, но если такой проблемы нет - я бы оставил файловое хранение.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644777
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилmaytonМожно в одну большую картинку запихнуть все. В играх так делают.
А вот это и будет извращение
Для иконок нормально. Тем более если они никак не меняются на протяжении сессии пользователя.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644779
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

IMHO не иконки у топикстартера
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644803
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так, с помощью нехитрых приспособлений буханку белого (или черного) хлеба можно превратить в троллейбус… Но зачем?

Программы обработки изображений сталкиваются с проблемой, поднятой ТС, по 10 раз на дню и как-то их обходят. Не проще посмотреть, как, благо исходников открытых хватает.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644830
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На хабре есть хорошая статья про кеширование картинок. Думаю автору это будет полезно.

По поводу Windows приложения и андроид.
Их нельзя писать в строчку через запятую.
Windows легко прогрузит 300 мб картинок.
А с Андроидом нужен некий эконом режим.
Вобщем это вопрос в топик мобильной
Разоаботки.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644877
Фотография mraklbrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выходит такой вариант:
Можно создать несколько файлов-соответствующих категориям, в каждом файле будут храниться картинки, относящиеся к этой категории.
Когда пользователь в приложении выбирает определённую категорию, файл фоново считывается и потом нужные картинки из него загружаются очень быстро (т.к. из ОЗУ).
И, получается, что в один момент времени, когда пользователь работает с однйо определённой категорией, в ОЗУ будет подгружено максимум 50 Мб.
Приложение должно быть кросплатформенным, поэтому нужно как-то и для Windows, и для Androdi чтобы был сходный механизм хранения и доступа.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644890
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Механизм может быть и разным, API должен быть общим
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644925
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://hex.pp.ua/object-id.php
файл можно открывать не только по имени, по и по ID,
в Ext3 у файла есть сови идентификаторы, не помню уже как они называются :( ноды или как то так.
Не знаю, будет ли такой подход быстрее :) но поробовать можно, удачи :)
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39644999
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizв файловой системе - заметная деградация скорости доступа - налицо,
Ну это смотря на чьё лицо. На лицо Windows Explorer-а, да ещё и со включённой индексацией содержимого - таки да.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645126
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizв файловой системе - заметная деградация скорости доступа - налицо,

ну бред же...
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645239
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mraklbrwВыходит такой вариант:
Можно создать несколько файлов-соответствующих категориям, в каждом файле будут храниться картинки, относящиеся к этой категории.
Когда пользователь в приложении выбирает определённую категорию, файл фоново считывается и потом нужные картинки из него загружаются очень быстро (т.к. из ОЗУ).
И, получается, что в один момент времени, когда пользователь работает с однйо определённой категорией, в ОЗУ будет подгружено максимум 50 Мб.

Хм... почему 50 Мб? Непонятно.

Приложение должно быть кросплатформенным, поэтому нужно как-то и для Windows, и для Androdi чтобы был сходный механизм хранения и доступа.
Дада. Максимализм во всем - это хорошо. Все люди должны быть одинакового роста. А тем кто выше можно
подпилить череп сверху
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645242
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот познавательная статья https://habr.com/company/surfingbird/blog/306252/
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645244
Фотография mraklbrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

50 Мб - т.к. один файл-картинки однйо категории не будет более 50 Мб.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645245
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes http://hex.pp.ua/object-id.php
файл можно открывать не только по имени, по и по ID,
в Ext3 у файла есть сови идентификаторы, не помню уже как они называются :( ноды или как то так.
Не знаю, будет ли такой подход быстрее :) но поробовать можно, удачи :)
Непонятно какой процент прироста мы получим?
Вангую что он лежит в диапазоне от 1% до 0.001%
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645352
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonRoman Mejtes http://hex.pp.ua/object-id.php
файл можно открывать не только по имени, по и по ID,
в Ext3 у файла есть сови идентификаторы, не помню уже как они называются :( ноды или как то так.
Не знаю, будет ли такой подход быстрее :) но поробовать можно, удачи :)
Непонятно какой процент прироста мы получим?
Вангую что он лежит в диапазоне от 1% до 0.001%

Вангую, что в windows мы вполне вместо прироста можем получить замедление. И, возможно, существенное + рост служебных файлов, что тоже не есть айс.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645367
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО Вы тут все по старой памяти вангуете. Тормоза из-за большого количества файлов были в FAT32, т.к. там в папке список файлов несортированный. В NTFS этой проблемы нет.

Потестил: есть папка 20000 файлов, открывается мгновенно. Это бэкапы. Перенес (F6 в Far`e) прошлогодние (15000) в отдельную подпапку - 40 сек. примерно, т.е. 375 файлов/сек. или 2.7 мс на один файл.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645370
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Мне кажется, ты не доверяешь профессионализму программистов из M$. Не хорошо ))) Коллегам нужно доверять.

Dimitry Sibiryakovtchingizв файловой системе - заметная деградация скорости доступа - налицо,
Ну это смотря на чьё лицо. На лицо Windows Explorer-а, да ещё и со включённой индексацией содержимого - таки да.
+++

p.s. А можно вспомнить и о том, что >10-15 лет все жили со включенной by defaul опцией Last Access Time
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645472
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИМХО Вы тут все по старой памяти вангуете. Тормоза из-за большого количества файлов были в FAT32, т.к. там в папке список файлов несортированный. В NTFS этой проблемы нет.

Потестил: есть папка 20000 файлов, открывается мгновенно. Это бэкапы. Перенес (F6 в Far`e) прошлогодние (15000) в отдельную подпапку - 40 сек. примерно, т.е. 375 файлов/сек. или 2.7 мс на один файл.
для винды +1

для ведроида пока гиблое дело, ибо FAT32
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645765
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)для ведроида пока гиблое дело, ибо FAT32

ext4
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645769
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

опс...., упустил
однако, там всё равно медленно всё работает
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645772
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttkealon(Ruslan)для ведроида пока гиблое дело, ибо FAT32

ext4
Сомневаюсь что винда поймет ext4. Может встроенная память ext4, но на флэшке FAT32.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645775
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TСомневаюсь что винда поймет ext4. Может встроенная память ext4, но на флэшке FAT32.

https://ru.wikipedia.org/wiki/YAFFS
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645784
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Эксперимент предельно понятен.

Но из него сделаны неверные выводы. Правильнее сказать что он не симулирует нагрузку кеша картинок.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39645814
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TСомневаюсь что винда поймет ext4. Может встроенная память ext4, но на флэшке FAT32.ему и не надо, ему надо что бы на разных ФС работало быстро
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39646478
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть такая cms OpenCMS, так она хранит картинки/файлы в базе
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39646502
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

На данном кейсе dbms будет работать медленнее чем локальная файловая система. Особенно когда картинка лежит в blob сегменте таблицы.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39646531
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяесть такая cms OpenCMS, так она хранит картинки/файлы в базе

Есть лишь один, и то сомнительный, плюс в хранении картинок и файлов в СУБД -- достаточно бекапить только одну базу данных.

Но потом начинаются минусы, и их настолько много, что в эту сторону даже смотреть не стоит.
...
Рейтинг: 0 / 0
Хранение приложением большого числа картинок малого размера на разных ОС
    #39646538
azsx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторв файловой системе - заметная деградация скорости доступа - налицо,
ну бред же...
Достаточно давно хранил до 1 млн файлов в винде и дебиане в одном каталоге (кстати их штук 20 было). Даже не знал, что в винде "деградация".
По мне так всё хранить в файлах или разбить на каталоги, но:
1. проверять проблемные имена (чтобы con не было, например);
2. условие, что речь идёт не о миллиардах файлов и не о мелких дисках.
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Хранение приложением большого числа картинок малого размера на разных ОС
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]