?

Log in

No account? Create an account
stuckinbuttons [entries|archive|friends|userinfo]
stuckinbuttons

[ website | Основной [лытдыбровый] журнал ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Сравнение производительности просмотрщиков изображений под Linux [Nov. 25th, 2017|10:29 pm]
stuckinbuttons

self_perfection
[Tags|]

Взялся я разобрать директорию с фоточками вроде такой

$ exiftool -printFormat '${FileSize}$/${Orientation}$/${ImageSize}$/${EncodingProcess}' 210133.jpg
1343 kB
Rotate 90 CW
3264x2448
Progressive DCT, Huffman coding


Открыл в стандартном для XFCE Ristretto, полистал туда-сюда и понял, что это боль. Листание между фотографиями слишком медленное. Ну да, компьютер, на котором я это пробовал сделать, откровенно тормозной, да и Progressive кодирование с поворотом изображения добавляют нагрузки на процессор. Но тем не менее, скорость была куда печальнее, чем в общем можно было надеяться! Решил замерить производительность различных просмотрщиков изображений. Итак дано:

$ inxi -CS
System: Host: self-Lenovo-B50-10 Kernel: 4.10.0-26-generic x86_64 (64 bit) Desktop: Xfce 4.12.3
Distro: Ubuntu 17.04
CPU: Dual core Intel Celeron N2840 (-MCP-) cache: 1024 KB
clock speeds: max: 2582 MHz 1: 1464 MHz 2: 1124 MHz


Методика тестирования: запускаю /usr/bin/time --format='%M - resident\n%U - user\n%e - elapsed' $APP --fullscreen *.jpg, как только отображается фото, нажимаю клавишу перехода к следующему, когда появляется последнее фото из набора (их всего 43), закрываю приложение. Каждая комбинация приложение/набор параметров прогоняется дважды, в таблице указаны средние результаты двух прогонов:

Viewer Extra options max RSS User CPU Time
Ristretto no limit rendering quiality 122252 39,685 52,745
Ristretto limit rendering quality 86772 25,72 37,77
gpicview 118930 34,295 44,34
viewnior smooth images 125732 34,185 47,275
viewnior no smooth images 125908 31,69 43,67
feh --auto-rotate --scale-down --fullscreen 97636 13,215 27,995
mcomix 341590 13,905 20,73
Geeqie defaults 242034 14,66 19,295


Анализ результатов


Умольчальный для XFCE просмотрщик Ristretto оказался самым медленным. И удивительно на общем уровне с GPicView и Viewnior. Забавно, что эта тройка приложений позиционируются как "простые и быстрые" а на деле не так уж быстры. У Ristretto есть настройка "limit rendering quality", которая его значительно ускоряет, но он всё равно проигрывает feh. Вот что такого делают стандартные просмотрщики картинок, что в разы проигрывают feh по потреблению процессора на отображение тех же изображений просто развёрнутыми на весь экран? Ещё видим, что почти для всех приложений (кроме MComix) время, затрачиваемое на пролистывание директории изображений примерно на 12с больше затраченного CPU времени. Видимо на рекцию на появление нового фото у меня уходила четверть-треть секунды, и в сумме за все 43 изображения набиралось 12 секунд ожидания от меня новых команд. И ни одно приложение не пыталось декодировать изображения многопоточно! Ну что за позор, зачем мне двуядерный процессор?

Победителем для меня стал MComix, который несколько выбивается из общего ряда. MComix в первую очередь заточен на просмотр комиксов, не является просмотрщиком изображений общего профиля. Но благодаря этому у него убер фича, тоже почему-то больше нигде не реализованная: он декодирует следующее изобрежение не дожидаясь команды на его открытие! По-видимому кеш отрендеренных изображений и приводит в большой степени к таким значительно большим чем у остальных протестированных приложений аппетитам к памяти, зато даёт убер фичу: при стандартном использовании следующее/предыдущее изображение будет отображаться мгновенно. Для меня это киллер фича. Ну и в тесте время пролистывания всех изображений оказалось наименьшим, потому что MComix не приходилось ждать от меня команды чтобы начать декодировать следующее изображение в директории.

Лучи гнева разработчикам тормозных программ.

UPD: по совету _oxpa_ добавил к сравнению Geeqie. Очень быстрая и функциональная утилита, достойное добавление к сравнению. Умеет предрендеринг следующего изображения. Да, CPU он съел в тесте чуть больше, думаю это связано с включённым по-умолчанию двухпроходным рендерингом (первый проход быстрый в низком качестве). Но пользоваться видимо я буду всё-таки MComix для задачи разгребания фоток на этом ноуте из-за фичи zooming glass по средней кнопки мыши у MComix. Во всём остальном Geeqie кажется чуть лучше.
linkpost comment

Дёргаем через D-Bus за org.freedesktop.Notifications.Notify из консоли [Jan. 28th, 2011|01:46 am]
stuckinbuttons

self_perfection
[Tags|, , , ]

Достала меня ощутимая задержка с похрустыванием винтом перед появлением уведомления от одного моего скрипта. Попробуем разобраться. Виновник дисковой активности обнаружился сразу — им оказался kdialog:
$ strace -ce trace=file kdialog --title 'Title' --passivepopup 'Message'
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 68.18    0.000015           0       412        30 lstat64
 31.82    0.000007           0       349       111 open
  0.00    0.000000           0         1           execve
  0.00    0.000000           0       111        62 access
  0.00    0.000000           0         5           readlink
  0.00    0.000000           0         5           statfs
  0.00    0.000000           0       103           getcwd
  0.00    0.000000           0       457        93 stat64
------ ----------- ----------- --------- --------- ----------------
100.00    0.000022                  1443       296 total

Святая борода Столлмана! Неудивительно, что при запуске обычно не находится довольно большого количества нужной информации в page cache. Какая-то это стрельба из гаубицы по воробьям, нельзя ли проще? Можно! Встречаем notify-send:
$ strace -ce trace=file notify-send -t 15000 -i dialog-information 'Title' "Message"
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
  -nan    0.000000           0        45         1 open
  -nan    0.000000           0         1           execve
  -nan    0.000000           0         1         1 access
------ ----------- ----------- --------- --------- ----------------
100.00    0.000000                    47         2 total

Вот это уже гораздо лучше. Но гномовское, что на кдешном десктопе не кошерно. При ближайшем рассмотрении оказывается, что показ уведомления осуществляется вызовом через D-Bus метода org.freedesktop.Notifications.Notify. Почему бы не дёргать его напрямую какой-нибудь простенькой консольной утилилитой? И вот тут я застрял: широко известные qdbus и dbus-send не осиливали нужный формат запроса, а самый умный совет, какой удалось нагуглить поначалу — использовать python скрипт. Но потом я всё-таки нашёл gdbus, который с задачей справился:
$ strace -ce trace=file gdbus call --session --dest org.freedesktop.Notifications \
--object-path /org/freedesktop/Notifications --method org.freedesktop.Notifications.Notify \
'appname' 0 dialog-information "Title" "Message" [] {} 15000
(uint32 28,)
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
  -nan    0.000000           0        17         2 open
  -nan    0.000000           0         1           execve
  -nan    0.000000           0         1         1 access
------ ----------- ----------- --------- --------- ----------------
100.00    0.000000                    19         3 total

Ещё лучше, да и из гномовских зависимостей один glib2.

Надеюсь, сэкономлю кому-нибудь время этим постом.
link2 comments|post comment

(no subject) [Jun. 20th, 2010|10:15 pm]
stuckinbuttons

self_perfection
KDE 4.4.4 (kdemod). Часы на панель пришлось добавлять редактированием ~/.kdemod4/share/config/plasma-desktop-appletsrc потому что гуявыми методами оно не желало добавляться. Дожили.
linkpost comment

Глючный линукс 2 [Oct. 24th, 2009|10:55 pm]
stuckinbuttons

self_perfection
[Tags|, , , ]

По мотивам предыдущей записи, о доставших глюках. Ядро 2.6.31 тоже ALSA сломало, но в этот раз я решил проблему. Переконфигурировал с нуля — ненадолго помогло. Потом обнаружилось, что при запуске KDE сессии звук слетает. После некоторых экспериментов обнаружилось, что если сделать alsaconf при запущенных кедах, то настройки, вроде бы, слетать перестают.

А вот ещё из недавно обнаруженных багов, пока с ним мало экспериментировал. С некоторых пор kdm, запускаемый из массива DAEMONS в /etc/rc.conf, стал запускаться в tty3, хотя там должен быть agetty. Если kdm перезапустить, он оказывается где ему и положено быть — на первом свободном терминале, т.е. tty7. Вроде бы, если начать KDE сессию из запущенного в tty3 kdm, то любая попытка в консоли стать рутом командой su после правильного ввода пароля убивает KDE сессию вместе с иксами. Это ведь совсем не нормально, правда? Ну ладно, я недавно подправил /etc/issue до вида
^[[H^[[2J
Arch Linux \r (\n) (\l) [\d \t]

но ведь не должно же быть такого эффекта.

link5 comments|post comment

Linux — говно [Oct. 17th, 2009|05:43 pm]
stuckinbuttons

self_perfection
UPD: На этот пост слетается удивительно много любителей венды (почему-то все анонимусы, что характерно). Так вот, господа, все баги, которые перечислены в посте, более мне не встречаются. Большинство за прошедшие 2 с лишним года исправлены, как обстоят дела с прочим, вроде печати, я не в курсе. Я линуксоид с конца 2006го года и на венды возвращаться не хочу. Win 7 пробовал, не понравилась. Тормоза... Ну что ж, я уже понял, что чем мощнее становится железо, тем ленивее становятся программисты. Но надо заметить, что на СПО можно соорудить и шуструю систему с актуальными версиями софта, см. на LXDE и XFCE. Тут уж выбираешь, что тебе нужнее: фичи или скорость. Венда такой свободы тоже не даёт.

Тезисы к этому посту лежали на винте 33 дня и жгли мозг, наконец изливаю душу.


Linux на десктопе — говно, не смотря на заверения убунтушников. Количество багов, тормозов и отсутствующего функционала, с которым мне сейчас приходится мириться (я использую Arch Linux) приближается к границам моего терпения. Можно, конечно, эти заявления списать на мою криворукость и идеологию Арча в духе "конфигурируй сам", но часть багов и тормоза у меня проявлялась ещё под Ubuntu, что и побудило меня в мае переехать на Arch. Итак, список:

  • Периодически в запущенном Firefox flash шизеет и перестаёт воспроизводить звук, если не повезёт, то это блокирует и воспроизведение ютубовского видео (хотя без звука его и так смотреть в большинстве случаев смысла нет). Лечится перезапуском лисы (с полминуты, зависит от количества открытых вкладок). Вроде бы, я на это напоролся сразу как переехал с венды на linux, но, надо отдать должное прогрессу линя на десктопе, раньше было ещё хуже. В некоторых ситуациях, особенно с Audacity звук ломался для всей сессии пользователя, приходилось делать logout/login.
  • 13 июля от обновления ядра до 2.6.30.1 сломался звук, alsa — гок, но заметил я это только немного погодя, в процессе восстановления перезапуска иксов по Alt+Ctrl+Backspace, так что 2 часа искал проблему не там. С июля kernel26 в IgnorePkg. Но на днях до арчевских репозитариев добралось ядро 2.6.31, надо собраться с духом и попробовать.
  • Ещё немного про звук и начинаем с багами KDE4. Уведомления от Kopete тормозят. Между самим событием (e.g. приходом сообщения) и проигрыванием звука проходит секунд 10 и это очень запутывает. Пробовал починить — не получилось, упоминаний схожих проблем найти не удалось. Вообще основной клиент у меня Gajim, Kopete использовал постольку поскольку нужно было время от времени общаться с айсикьюшниками, а сейчас для этих целей использую qutIM, так что когда проблема появилась и есть ли до сих пор — не знаю.
  • Konqueror (к Dolphin я себя приучить не смог) на момент написания тезисов к посту регулярно падал, сейчас падает изредка. И это в KDE версии 4.3?!
  • С переездом на Arch я созрел до переезда на KDE4 и использования десктопных красявостей, благо kwin в KDE4 эффекты поддерживает нативно. Сначала радовался. Потом оказалось, что включённые эффекты приводят к: сильному мерцанию полноэкранных приложений, если поверх них возникает какое-то уведомление (например в браузере alt к картинке/урлу), проскакивающему раз в несколько секунд в VLC красному кадру в видео, kwin, стабильно кушающему ~10% CPU (AMD Athlon(tm) 64 X2 5200+). GeForce 9400 GT, дрова проприетарные фирменные. Потыкался — починить не смог. Несколько недель как выключил эффекты насовсем и рад.
  • Регулярно дублируются кнопки окон на панели задач, при этом копия становится эдаким неубиваемым призраком, видимым на всех раб. столах и остающимся после закрытия окна, которому оно соответствовало. Лечится перезапуском plasma-desktop.
  • Регулярно падали иксы. Но после отключения эффектов насовсем стало вроде бы получше.
  • Принтер не работает. С ним вообще длинная история, когда я только переехал на линь, принтер HP Photosmart 7450 подхватился без каких-либо проблем. Через порядка года (я очень редко печатаю вообще) оказалось, что принтер виснет при любой попытке печати. То есть настолько, что даже кнопка выключения на принтере не работает, приходится дёргать из электросети. Под вендой, что характерно, работал на ура. Тогда я это связал с тем, что кончился цветной картридж. Ещё через порядка года я переехал на Арч и попробовал наудачу его настроить. О чудо, прекрасно работает! А через месяц-другой обнаружилось, что опять стали проявляться те же симптомы. Пробовал откатить cups и hplip — безуспешно, анализировать логи, в которые сыпалось что-то интересное, но, увы, непонятное. В итоге решил, что проще несколько раз в году потратить минут 10 на перезагрузку в Windows XP, чем потратить на возню с этим ещё возможно много часов.
  • Браузеры тормозят, флэш тормозит. Доходит до смешного и абсурдного: Opera и Firefox нативно в javascript тестах показывают заметно меньшие результаты, чем их вендовые сборки, запущенные под wine. Проводил такие же тесты у себя, подтверждаю.
  • Pacman — тормоз. pacman-optimize вызывается каждые несколько дней по крону, но пакман всё равно удручающе долго ворочает свою базу.
  • Вообще графика тормозит. Под вендой окошки при изменении их размеров мышкой успевают за мышой пиксель-в-пиксель давным давно, ещё с PIII. Под линем на AMD Athlon(tm) 64 X2 5200+ — нет. В заоптимизированном арче. Ну ладно, у меня i386 система, из процессора выжато не всё, но какого чёрта?! Почему до значительного апгрейда 2 года назад под Windows XP очень функциональный текстовый редактор Notepad++ с подсветкой синтаксиса и проч. запускался порядка секунды, а тут заметно менее функциональный Kate — секунды 3??? Что-то глобально не так в датском королевстве.


А не попробовать ли мне Windows 7? Говорят, хороша…

link15 comments|post comment

(no subject) [Mar. 31st, 2009|10:04 pm]
stuckinbuttons

self_perfection
[Tags|]
[music |Brian Culbertson - Forbidden Love | Powered by Last.fm]

Поставил на днях себе вместо раздолбанного полгода назад CD привода откопанный в закромах родины PHILIPS CDD5301. Чёрт, я его боюсь, похоже, у него искусственный интеллект и явно не дружелюбный. Этот привод с удивительной точностью не читает только диски с линуксом! Я предлагал ему оставшиеся от заказов на https://shipit.ubuntu.com/ диски с *убунтой — он до бесконечности жуёт, но файловую систему оси не показывает и загрузка с них не начинается. Записанный некогда мною на CD-R Knoppix 4.0 выплёвывает, едва проглотив, типа это и не диск даже. Остальные из примерно десятка предложенных на дегустацию дисков прочитались без проблем. Так что если я в ближайшее время пропаду — знайте, это меня съел CD привод PHILIPS CDD5301. Вряд ли при такой нелюбви к линуксу он долго будет терпеть моё соседство.

linkpost comment

Prolog [Jan. 20th, 2009|03:22 pm]
stuckinbuttons

self_perfection
[Tags|, ]

Задачка. Скриншот, 800x600, 284 KiBCollapse )
Вот эта задачка и недавно встреченные на хабре статьи о прологе сподвигли меня познакомиться с прологом. Очень давно узнал о существовании этого интересного ЯП, но всё руки не доходили. И за пару часов мне таки удалось решить это на Prolog'е (предварительно минут за 20 решив на бумажке, но, как известно, "Лучше день потерять, чтобы потом за 5 минут долететь" ©).

В файле описан предикат, считающий сколько раз встречается значение V среди A,B,C,D. Как это сделать встроенными средствами и можно ли задать в предикат в интерактивном режиме я пока не знаю.
$ cat pilot.pl
count(N,V,A,B,C,D):-
        ( (V=:=A,NA=1) ; (V\=A,NA=0) ),
        ( (V=:=B,NB=1) ; (V\=B,NB=0) ),
        ( (V=:=C,NC=1) ; (V\=C,NC=0) ),
        ( (V=:=D,ND=1) ; (V\=D,ND=0) ),
        N is NA + NB + NC + ND.


Далее в интерактивном режиме описываю
$ swipl -s pilot.pl
% pilot.pl compiled 0.00 sec, 2,584 bytes
Welcome to SWI-Prolog (Multi-threaded, Version 5.6.47)
Copyright (c) 1990-2007 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.
For help, use ?- help(Topic). or ?- apropos(Word).
?- % A-D — вопросы на дверях 1-4, имеют допустимые ответы 1-4
|    (A=1;A=2;A=3;A=4),(B=1;B=2;B=3;B=4),(C=1;C=2;C=3;C=4),(D=1;D=2;D=3;D=4),
|    % Условие на первой двери. Ответ на ней встречается среди всех ответов 2 раза или 1
|    ( count(2,A,A,B,C,D) ; count(1,A,A,B,C,D) ),
|    % Ответ на второй двери — количество ответов "4"
|    ( count(B,4,A,B,C,D) ),
| % Среди всех количеств встреч каждого вида ответа только одно количество должно быть ==1
| % Это менее сильное условие, чем на третьей двери, но его хватило для получения однозначного ответа
|    ( count(N1,1,A,B,C,D), count(N2,2,A,B,C,D), count(N3,3,A,B,C,D), N4=B, count(1,1,N1,N2,N3,N4) ).
A = 4,
B = 1,
C = 1,
D = 1,
N1 = 3,
N2 = 0,
N3 = 0,
N4 = 1
Yes
?-
% halt


А D=1 — это как раз ответ к задаче.

Теперь я знаю удобное средство для автоматизации решения загадки Эйнштейна :)
linkpost comment

Google Chrome + Я.Онлайн 2.0 [Sep. 3rd, 2008|08:12 pm]
stuckinbuttons

self_perfection
[Tags|, , , , ]

Блин, господа, вы задолбали. Да, я потестировал Google Chrome. В виртуалке с вендой. Ну да, шустр, симпатичен, прост. Однако браузер без mouse gestures — не браузер. И пока не будет версии для линукса, он мне какбэ нафиг не сдался. А вот Я.Онлайн 2.0, который теперь натуральный jabber клиент — вот это новость! Теперь-то точно ясно, что ацка умрёт и все мы будем скоро в джаббере. Событие.

linkpost comment

Про Gnome и апгрейд [Jan. 6th, 2008|06:25 pm]
stuckinbuttons

self_perfection
[Tags|, ]

Где-то в середине ноября мой провайдер что-то у себя покрутил, и у меня сломался интернет в линухе. В винде причём продолжал быть работоспособным. А близится сессия, а на носу апгрейд, после которого всё равно всё будет переставляться… В общем чинить мне его было лень и сидел я в винде. "На носу апгрейд" продолжалось месяц. А потом раскорёженный системник, наспех поставленная венда, неделя ни рыба ни мясо, убитые на Half-Life 2 выходные… Линукс поставил только на днях. Где-то в январе нам обещают релиз четвёртых кедов, так что решил посидеть до тех под гномом, дабы понять, что это за зверь такой. Поставил Ubuntu 7.10 Gutsy.

В целом, я разочарован. Чёрт подери, здесь реально нет гуя для /etc/fstab?!?! В кедах он, положим, не самый удобный, но там он по крайней мере есть! Или я слепой? gedit — это же убожество! У меня полно текстовых файлов в однобайтовых кодировках, а это чудо не даёт мне указать, что то, что я открываю — не юникод. Где хоткеи? Kate вполне достаточен для кодинга, а gedit только подсветку даёт. Пфуй. Или вот скажем после очередной загрузки у меня сломался звук. Исследования показали, что он почему-то стал выводиться на выход встроенного звука материнки. После установки было так же, но я и не ожидаю угадывания конкретной дырки, куда у меня вставлен провод колонок гаданием на /dev/urandom, в настройках звука указал правильный девайс вывода — всё нормально заработало. После поломки полез опять в эти настройки, всё переключатели стоят в нужном положении, кнопки test пищат куда надо, но весь остальной звук воспроизводится материнкой. Починил отключением встроенного звука в биосе. Ладно, ладно, далеко не факт, что тут претензии должны быть к гному. Попробовал найти аналог yakuake — есть такое, называется Tilda. Ставлю. Надо же, разворачивается. И сворачивается. Удивительно. Почти как Yakuake. Вот только yakuake построен на konsole, в нём настроек полно, хоткеи, а эта тильда не даёт даже банально переключаться между вкладками клавиатурой. А ещё Tilda не умеет автоматически сворачиваться, потеряв фокус ввода. Убожество. Мда, похоже я так и буду жить в кедах..

link3 comments|post comment

Статистика по музыке [Dec. 9th, 2007|07:02 pm]
stuckinbuttons

self_perfection
[Tags|]
[music |Enya - No Holly for Miss Quinn [Shepherd Moons]]

Собрал статистику по своей коллекции музыки. Amarok говорит, что у меня 279 альбомов. Из них 97 lossless.скриптCollapse ) Одни сканы обложек весят больше половины гектара! UPD: можно прощескриптCollapse ) И самое интересное, распределение по годам релиза (участвует 189 альбомов — те, у которых год прописан в названии папки альбома)


скриптыCollapse )
Кто догадается, почему я решил собрать статистику именно сейчас — тому пирожок.

UPD: Кстати, давно уж автоматизировал рисование этого графика.
link4 comments|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]