2015

Из говна и палок

На поведение Windows при вставлении-вынимании флешки я уже жаловался: событие не прилетает, нужно поллить. Потом жаловался и на OS X - событие прилетает, но до того, как устройство появляется в списке томов. Тоже поллинг.

Но действительность на OS X превосходит ожидания.

Если мы размонтируем устройство сами, через FSUnmountVolumeSync(), то поллинг работает нормально: прилетает callback, дальше по таймеру несколько раз читаем список томов, из списка размонтированный том пропадает, все отлично.

А вот если размонтировать через Finder, то жизнь ГОРАЗДО...

FastRawViewer 1.1-RC5 - для маководов

Нам, ура, продолжают жаловаться, а мы - реагируем.

(здесь были ссылки для скачивания) Версия 1.1 выпущена, качайте с официального сайта

Маковская же версия содержит такие изменения:

  1. Не опрашиваются регулярно сетевые тома, только по появлению/исчезновению.
  2. Для опроса (всех) томов на OS X 10.7+ используется современный API, вместо (deprecated) statfs64. На 10.6 - остался statfs64, более нового там нет.

Эти изменения появились после багрепорта: на отсохшем (таймауты) сетевом томе FRV падает внутри statfs64.

Просьбы:

  • Потестировать. То есть мы, конечно, тоже (и уже), но разнообразие макосей велико.
  • Если у вас есть отсыхающие сетевые тома - и на них тоже потестировать.

FastRawViewer 1.1 (RC4)

Ура, нам начали жаловаться! По результатам жалоб, выпущен FRV 1.1 RC4:

(здесь были ссылки для скачивания) Версия 1.1 выпущена, качайте с официального сайта

Изменения относительно RC2:

  1. Улучшены потроха у показа превьюшек.
  2. Дополнительная настройка Preferences - Performance - Thumbnail cache - Thumbnail decoder thread count:
    • Стандартно (при первом запуске) ставится в количество ядер вашего процессора (включая виртуальные/hyperthreading ядра).
    • Для быстрых дисков (SSD, очень быстрые флеш-карточки) значение можно увеличивать, при 2xCPU cores мне удалось загрузить все ядра декодированием превьюшек (одновременно имеет смысл увеличивать размер кэша превьюшек и глубину чтения дальше).
    • Для медленных дисков (единичный HDD, медленные флешки, медленная сеть) - рекомендуется уменьшить этот параметр и одновременно уменьшить глубину чтения дальше.
  3. Кнопка Filmstrip Off/On в правой части статусной строки. Удобно стало, да, спасибо что настояли

FastRawViewer 1.1 (RC2)

Удивительное дело, но серьезных и воспроизводимых багов нам в FRV 1.1-RC1 не нашли, да и вообще почти никто не пишет.

Поэтому в RC2 изменения минимальны:

  • Обновлено руководство, идущее в комплекте поставки
  • Переведена на английский страничка What's new
  • Добавлена поддержка двух камер (Olympus SH-2 и TG-4), общее количество поддержаных камер теперь over 800 (а именно 801 :)
  • Еще в паре мест обновлена LibRaw, еще чуть лучше работает с битыми файлами.

Ссылки для скачивания 1.1-RC2

(здесь были ссылки для скачивания) Версия 1.1 выпущена, качайте с официального сайта

Заметили какую-то гадость - пишите. У нас (авторов) - взгляд давно замылился, мы используем программу так как сами привыкли, скажем вот в меню я вообще давно не заглядывал, можем чего-то не замечать месяцами.

FastRawViewer 1.1.0 (release candidate 1)

После примерно пары месяцев разработки (следы которой были видны в этом блоге) мы выпускаем FastRawViewer 1.1. Пока - Release Candidate, но слово Candidate хочется как можно быстрее из названия убрать, надеемся что читатели нам помогут (выступив тестерами).

Как видно из скриншота, программа стала больше похожа на типичные современные вьюеры:

  • Темный фон (регулируется)
  • Дерево папок
  • Превьюшки (filmstrip, окно с превьюшками можно вытащить и растянуть на любой размер)
  • ...

WM_DEVICECHANGE на OS X

Продолжение к WM_DEVICECHANGE и все все все (потому и заголовок такой), только на маке.

На OS X, казалось бы, все хорошо, там есть такое:

DARegisterDiskAppearedCallback(m_session, kDADiskDescriptionMatchVolumeMountable, mountCallback2, this);

Ну и дальше в том же духе. И на всовывание USB-карточки прилетает callback.

Дальше мы хотим узнать, что же нам всунули, идем получать список маунтов:

CFURLEnumeratorRef enumerator = CFURLEnumeratorCreateForMountedVolumes(NULL, kCFURLEnumeratorSkipInvisibles, NULL);

Фигак, а нашего тома в этом списке еще нет.

Причем,...

A: windows 7 TCP performance

На второй день я допер (навели комменты), что можно же на дисковом ящике поднять RAMdrive. Результат упражнения вот:

Картинка для сравнения - вторая в предыдущем посте.

Справедливости ради, я еще потрахался (обновил фирмварь на карте, увеличил количество буферов до 32k, что выше рекомендованного максимума в 16k) и железным диском стало получше процентов на 20, скорость чтения где-то 450Mb/sec на самых больших блоках.

Так вот, какие выводы мы...

Sale: дешевый infiniband

Да, кстати, получается, что с Infiniband дома я наигрался.

Продаю комплект:

ПРОПИТО!

  • Три карты Mellanox Infinihost III MHEA-28-XTC. 10 гигабит (данных 8.5), два порта.
  • Три кабеля CX4, трехметровых, китайских (один, кажется, родной D-Link, но идентифицировать его я не могу)

Это позволит поднять стенд из трех машин точка-точка и поиграться в Infiniband. Ну, к примеру,  поднять вычислительный кластер с MPI на трех машинах. Или подключить пару дисковых полок.

Цена, ориентируясь на Ebay (такие же карты с доставкой и самые...

Q: windows 7 tcp performance

Есть у меня дисковый бокс (Adaptec 5805, 8 дисков, i5-2400, 8GB RAM), который до сегодняшнего дня жил под Linux c картами Infiniband 10G, доступался я к нему по SRP и выглядело это, в смысле скорости, вот так:

С чем связан провал чтения при размере записи 128-256к - вот не знаю, от слова совсем, но он устойчиво есть, воспроизводится при повторном тестировании. Кстати, как померять под виндами какая у...

Про QFileSystemModel

А вот возьмем, к примеру, Qt и решим вывести дерево фолдеров (папок, каталогов).

С незапамятных времен в Qt есть QDirModel, которая тянет данные синхронно и, поговаривают, очень от этого тормозит. Не заметил, чтобы очень, но на долю секунды при открытии большого каталога по сети - ну да, есть. Самое плохое в этом то, что оно блокирует UI пока читает каталоги, а пересадить в отдельный (от View) thread, судя по всему, не получится.

А есть новая прекрасная QFileSystemModel,...

Pages