GraphicsMagick медленнее при изменении размера изображения в папке с большим количеством файлов (+80k)

Я заметил, что когда я пытаюсь изменить размер изображения, которое находится в папке с более чем 80 тысячами других изображений (тот же уровень без подкаталогов), изменение размера может занять почти 2 секунды. (1,92 с)

Тем не менее, то же самое изображение в папке, содержащей всего 10 других изображений, создается почти мгновенно (0,02 с).

Вот мои команды и результаты:

GM> benchmark convert -size 200x200 "C:\lots-of-pics\image399.png[0]" -auto-orient -thumbnail 200x200 "C:\Users\user\AppData\Local\Temp\img-4518761374990603981.png"
Results: 1 threads 1 iter 1.94s user 1.94s total 0.514 iter/s 0.516 iter/cpu
GM> benchmark convert -size 200x200 "C:\less-pics\image399.png[0]" -auto-orient -thumbnail 200x200 "C:\Users\user\AppData\Local\Temp\img-4518761374990603981.png"
Results: 1 threads 1 iter 0.02s user 0.02s total 58.823 iter/s 64.000 iter/cpu

Я не смог найти ничего об этом на SO или sourceforge. Любые идеи, почему это намного медленнее?


person mateuscb    schedule 19.07.2016    source источник
comment
Вы сообщили об ошибке ребятам из GraphicsMagick?   -  person Alan    schedule 19.07.2016
comment
@alan Нет, не был уверен, что это ошибка. Обычно это лучший способ сделать это?   -  person mateuscb    schedule 19.07.2016
comment
Этот вопрос, похоже, не связан с программированием, без ответа, связанного с программированием, поэтому я считаю, что этот вопрос не по теме для SO. Вы заметили неожиданное поведение с GM, и они будут лучшим источником для решения этой проблемы. Сообщение об ошибке вместе с воспроизводимым тестовым примером должно ускорить этот процесс.   -  person Alan    schedule 19.07.2016
comment
Вы можете попробовать написать простое приложение, которое полностью читает данный файл, и протестировать его — если простое чтение файла занимает гораздо больше времени, то да, у вас есть проблема с файловой системой (возможно, сделать chkdsk?). В противном случае используемая вами библиотека должна вести себя по-другому, если рядом с тем, который ей передан для преобразования, находится много файлов - вам придется исследовать это с помощью профилировщика, Sysinternals Process Monitor или с помощью ряда других возможных подходов.   -  person cynic    schedule 19.07.2016
comment
Вы удивлены, что Windows плохо справляется с 80 000 файлов, начинающихся с img-nnnnnnnn.png?   -  person Mark Setchell    schedule 19.07.2016


Ответы (1)


Я должен был попробовать это первым. Оказывается, обновление до последней версии GraphicsMagick 1.3.24 решило проблему.

Изменение размера одного и того же изображения, независимо от того, сколько других файлов находится в той же папке, теперь занимает одинаковое время.

Глядя на примечания к выпуску 1.3.22, возможно, это было исправлено с тех пор, как упоминает много файлов в каталоге (я не смог найти точную фиксацию):

Общее: Исправлена ​​проблема с производительностью при извлечении пути к субизображению, когда в каталоге много файлов.

person mateuscb    schedule 20.07.2016