Почему ImageMagick, 'сравнивают' команду, настолько медленную и есть ли альтернатива?

Вне strings Я никогда не видел инструмент командной строки Unix вне grep, awk, и друзья, которые могут проанализировать данные из любого текстового файла. Все эти инструменты предполагают, что данные находятся в текстовом формате.

Файлы, такие как PDF или документы Word кодируют текстовые данные в двоичном формате, таким образом представляющем его недоступный без помощи других инструментов проанализировать его. Эти инструменты обычно являются пони приема, которые часто только могут иметь дело с одним или несколькими из этих форматов двоичного файла.

Можно использовать file команда для идентификации типа файла.

Пример

$ file /usr/share/cups/data/default.pdf
/usr/share/cups/data/default.pdf: PDF document, version 1.5

Посмотрите man file для больше на его использовании.

Lucene, Солнечная энергия и другие Средства индексирования

Вы смогли адаптировать или находить инструмент, это включено со средством индексирования, таким как Lucene (такой как: документы PDF & MSOffice), который может проанализировать этот текст, по крайней мере, из большого подмножества файлов, с которыми можно было бы обычно иметь дело ежедневно. Я ожидал бы, что это сможет спорить с PDF, Word и форматами файлов Office Libre для начинающих.

Другие инструменты

Эти инструменты могут по крайней мере частично считать определенные двоичные файлы так я, "m добавление их здесь именно так Вы знаете о них. Они все не охватывают, но могли бы быть полезны для Вас тем не менее.

3
23.10.2014, 19:22
1 ответ

Это не проблема S / W, и оно не является проблемой с атомом. У меня есть атом 330 в качестве моей главной машины (D945GCLF2), работает Arch Linux - и я только что сделал этот тест:

ttsiod@home ~/tmp
$ wget i.stack.imgur.com/fWwyu.png
--2014-10-29 14:30:08--  http://i.stack.imgur.com/fWwyu.png
Resolving i.stack.imgur.com (i.stack.imgur.com)... 103.31.7.31...
Connecting to i.stack.imgur.com (i.stack.imgur.com)|103.31.7.31|:80...
HTTP request sent, awaiting response... 200 OK
Length: 28576 (28K) [image/png]
Saving to: `fWwyu.png'

100%[==============================>] 28,576   --.-K/s   in 0.06s   

2014-10-29 14:30:09 (446 KB/s) - `fWwyu.png' saved [28576/28576]

ttsiod@home ~/tmp
$ wget http://i.stack.imgur.com/KQiJX.png
--2014-10-29 14:30:16--  http://i.stack.imgur.com/KQiJX.png
Resolving i.stack.imgur.com (i.stack.imgur.com)... 103.31.6.184
Connecting to i.stack.imgur.com (i.stack.imgur.com)|103.31.6.184|:80...
HTTP request sent, awaiting response... 200 OK
Length: 28212 (28K) [image/png]
Saving to: `KQiJX.png'

100%[==============================>] 28,212  --.-K/s   in 0.06s   

2014-10-29 14:30:17 (431 KB/s) - `KQiJX.png' saved [28212/28212]


ttsiod@home ~/tmp
$ identify KQiJX.png 
KQiJX.png PNG 640x400 640x400+0+0 8-bit sRGB 28.2KB 0.000u 0:00.000

ttsiod@home ~/tmp
$ time compare -metric PHASH fWwyu.png KQiJX.png null:
0.191664
real    0m1.029s
user    0m2.863s
sys     0m0.177s

ttsiod@home ~/tmp
$ time compare -metric PHASH fWwyu.png fWwyu.png null:
0
real    0m1.027s
user    0m2.843s
sys     0m0.190s

Так что время, которое требуется для . Сравнить 2 изображения 640x400 на ATOM330 - 1 сек. гораздо быстрее, чем ваши 25 секунд.

В отсутствие stroace -f вывод журнала из вашего запуска, единственное, что я могу догадаться, это ... плохое аппаратное обеспечение (возможно, пассивно охлажденный процессор, который выходит спустя, его скорость, чтобы избежать ловить огонь? ) или плохо скомпилированные двоичные файлы (например, не использование расширений MMX / SSE).

Кстати, чтобы убедиться, что ядро ​​не дротлирует вас, сделайте это первым (как root):

for i in /sys/devices/system/cpu/cpu?/cpufreq/scaling_governor ; do
    echo performance > $i
done

Я бы тогда попытался отслеживать температуру / частоту CPU во время теста - я догадаю, что это вниз Обливион ...

Для полноты, это ядро ​​и Сравнение версий, которые я использовал в тесте выше:

ttsiod@home ~/tmp
$ egrep '^model.na|^flags'  /proc/cpuinfo   | sort -u
model name      : Intel(R) Atom(TM) CPU  330   @ 1.60GHz
flags           : fpu vme de tsc msr pae mce cx8 apic sep 
                  mtrr pge mca cmov pat clflush dts acpi
                  mmx fxsr sse sse2 ss ht tm pbe syscall
                  nx lm constant_tsc arch_perfmon pebs
                  bts nopl aperfmperf pni dtes64 monitor
                  ds_cpl tm2 ssse3 cx16 xtpr pdcm movbe
                  lahf_lm dtherm

ttsiod@home ~/tmp
$ uname -a
Linux home 3.16.3-1-ARCH #1 SMP PREEMPT Wed Sep 17 21:54:13
                                CEST 2014 x86_64 GNU/Linux

ttsiod@home ~/tmp
$ compare --version
Version: ImageMagick 6.8.9-9 Q16 x86_64 2014-10-26 http://www.imagemagick.o
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC HDRI Modules OpenCL OpenMP
Delegates: bzlib cairo fontconfig freetype gslib jng jp2 jpeg lcms lqr ltdl
           lzma pangocairo png ps rsvg tiff webp wmf x xml zlib
2
27.01.2020, 21:27

Теги

Похожие вопросы