+3
Fixed

Слишком долгий запуск HKU

kossmoss 13 years ago in Баги софта (ошибки которые Вам показались неудобными или не нужными в приложении HK Uploader) updated by anonymous 10 years ago 6

Слишком долго (сейчас посчитал - около десяти минут для 29 картинок) приходится ждать загрузки ранее загруженных мной картинок перед тем, как становится возможно, наконец, что-то загрузить (что мне важнее и нужно чаще, чем разглядывать старые картинки). Эти картинки явно весят не столько, чтобы столько ждать даже на мегабитовом коннекте.

Предположу, что изображения грузятся ко мне на комп на каком-то слабом приоритете для чрезвычайно полезной для меня "синхронизации". Нафига мне такая навязчивая синхронизация, не понимаю. Чтобы закэшировать для локального просмотра то, что я именно сейчас смотреть не собирался и, возможно, еще несколько месяцев не собирался бы? Хорошо хоть, гифки не скачиваются полностью, только один кадр (или, о ужас, они скачиваются целиком?).

Очень интересно, что же будет, когда у меня станет, например, 100 картинок?

Самый принципиальный вопрос - зачем блокировать основные функции программы(а это все-таки заливка изображений на хостинг), пока не загрузится "сверхнеобходимое"? Может, стоит такие вещи все-таки в фон убирать?

Answer

Answer
Under review
Слишком долго (сейчас посчитал - около десяти минут для 29 картинок) приходится ждать загрузки ранее загруженных мной картинок перед тем, как становится возможно, наконец, что-то загрузить (что мне важнее и нужно чаще, чем разглядывать старые картинки). Эти картинки явно весят не столько, чтобы столько ждать даже на мегабитовом коннекте.

Боюсь спросить, какая у Вас скорость подключения к сети. У меня на 15 мбит/сек приложение загружается около 7-10 секунд, но это если оно будет грузить все мои 100+ картинок (далеко не маленьких). Без загрузки картинок (если они уже закэшированы локально) оно загружается за 2-3 секунды.


Предположу, что изображения грузятся ко мне на комп на каком-то слабом приоритете для чрезвычайно полезной для меня "синхронизации". Нафига мне такая навязчивая синхронизация, не понимаю. Чтобы закэшировать для локального просмотра то, что я именно сейчас смотреть не собирался и, возможно, еще несколько месяцев не собирался бы? Хорошо хоть, гифки не скачиваются полностью, только один кадр (или, о ужас, они скачиваются целиком?).

Никакого приоритизирования при загрузке нет. Картинки отдаются на полной скорости через очень широкий канал - должно хватать всем.


Если у Вас все изображения загружаются каждый раз при запуске приложения, то это не нормальное поведение, вероятно у Вас присутсвуют какие-либо проблемы с сохранением файлов настроек и кэша на диск, в связи с чем приложение просто не в силах единожды закешировать имеющиеся изображения и не грузить их при каждом запуске.


Некоторые оптимизации по скорости синхронизации картинок ещё будут иметь место, но они будут иметь смысл для тех кто уже перевалил за 500-1000 изображений. Т.е. в Вашем случае всё и так должно быть более чем хорошо.


Самый принципиальный вопрос - зачем блокировать основные функции программы(а это все-таки заливка изображений на хостинг), пока не загрузится "сверхнеобходимое"? Может, стоит такие вещи все-таки в фон убирать?

Возможности блокируются затем, чтобы не возникало какой либо рассинхронизации и списки изображений/тегов и внутренней информации об изображениях оставались актуальными. Но это не должно иметь значения при нормальной работе текущей версии приложения. А у Вас точно происходит что-то странное со скачиванием изображений. 


В общем - хотелось бы услышать побольше подробностей о конфигурации Вашего компьютера, использованной ОС, скорости подключения и возможных ограничениях прав в системе.
 

Насчёт полного отключения синхронизации (в настройках) - вопрос пока что остаётся открытым. Т.е. мы ещё обсудим это и, если придём к единому решению - добавим в приложение.


Надеюсь, ответил на все Ваши вопросы.

Если нет - буду рад ответить на любые другие - пишите в комментарии.

Answer
Under review
Слишком долго (сейчас посчитал - около десяти минут для 29 картинок) приходится ждать загрузки ранее загруженных мной картинок перед тем, как становится возможно, наконец, что-то загрузить (что мне важнее и нужно чаще, чем разглядывать старые картинки). Эти картинки явно весят не столько, чтобы столько ждать даже на мегабитовом коннекте.

Боюсь спросить, какая у Вас скорость подключения к сети. У меня на 15 мбит/сек приложение загружается около 7-10 секунд, но это если оно будет грузить все мои 100+ картинок (далеко не маленьких). Без загрузки картинок (если они уже закэшированы локально) оно загружается за 2-3 секунды.


Предположу, что изображения грузятся ко мне на комп на каком-то слабом приоритете для чрезвычайно полезной для меня "синхронизации". Нафига мне такая навязчивая синхронизация, не понимаю. Чтобы закэшировать для локального просмотра то, что я именно сейчас смотреть не собирался и, возможно, еще несколько месяцев не собирался бы? Хорошо хоть, гифки не скачиваются полностью, только один кадр (или, о ужас, они скачиваются целиком?).

Никакого приоритизирования при загрузке нет. Картинки отдаются на полной скорости через очень широкий канал - должно хватать всем.


Если у Вас все изображения загружаются каждый раз при запуске приложения, то это не нормальное поведение, вероятно у Вас присутсвуют какие-либо проблемы с сохранением файлов настроек и кэша на диск, в связи с чем приложение просто не в силах единожды закешировать имеющиеся изображения и не грузить их при каждом запуске.


Некоторые оптимизации по скорости синхронизации картинок ещё будут иметь место, но они будут иметь смысл для тех кто уже перевалил за 500-1000 изображений. Т.е. в Вашем случае всё и так должно быть более чем хорошо.


Самый принципиальный вопрос - зачем блокировать основные функции программы(а это все-таки заливка изображений на хостинг), пока не загрузится "сверхнеобходимое"? Может, стоит такие вещи все-таки в фон убирать?

Возможности блокируются затем, чтобы не возникало какой либо рассинхронизации и списки изображений/тегов и внутренней информации об изображениях оставались актуальными. Но это не должно иметь значения при нормальной работе текущей версии приложения. А у Вас точно происходит что-то странное со скачиванием изображений. 


В общем - хотелось бы услышать побольше подробностей о конфигурации Вашего компьютера, использованной ОС, скорости подключения и возможных ограничениях прав в системе.
 

Насчёт полного отключения синхронизации (в настройках) - вопрос пока что остаётся открытым. Т.е. мы ещё обсудим это и, если придём к единому решению - добавим в приложение.


Надеюсь, ответил на все Ваши вопросы.

Если нет - буду рад ответить на любые другие - пишите в комментарии.

 Я проверил еще раз - проблему наблюдаю только под Debian 5.0 32 bit. Коннект 1.5 Мбит. При первом запуске в сеансе долгая загрузка, а если после этого выгрузить программу и опять запустить, то загрузки картинок не происходит. Может, и в самом деле хранилище очищается между сеансами. Где оно хранится?

Вообще - в user-home директории (обычно там любой пользователь и приложения имеют права на запись-чтение).

В windows это "C:\Users\<user>\.nhk". В MacOS - "/usr/<user>/.nhk", на линухах думаю тоже что-то типа того. Настройки сохраняются в несколько файлов в папку ".nhk".

В общем, я выяснил, в чем дело.


В каталоге ~/.nhk хранятся настройки программы и xml c путями к картинками, причем из этих путей понятно, что физически файлы картинок хранятся в /tmp. Суть в том, что у меня этот каталог автоматически очищается при загрузке компьютера (не знаю, как в других дистрибутивах Linux, но в Debian это поведение по умолчанию). В принципе, я могу это отрубить, но обрекать себя на постоянный рост этого каталога из-за одной программы как-то неправильно, я считаю. Так что теперь моя проблема - настроить место для хранилища, отличное от /tmp.


И в любом случае ситуация c назойливой синхронизацией остается - представьте себе ситуацию, когда пользователь долгое время интенсивно заливает картинки, а потом в один прекрасный день инсталлирует аплоадер на другой машине (и, о ужас, там будет медленный мобильный интернет! Хотя я, может, зря сгущаю краски?), пока все не загрузится на компьютер, он не сможет ничего загрузить на сайт. Я думаю, все-таки стоит делать процесс синхронизации фоновым или вообще отключаемым для таких ситуаций.
Насчёт хранения изображений в temp'е - так оно и есть. В ближайшей версии добавлю настройку директории хранения закэшированных изображений. Плюс, думаю, стоит по умолчанию сделать директорию хранения картинок той же, что и настроек. Просто необходимо более аккуратно (приложению а не Вам, если что) следить за порядком этих файлов.

Насчёт фоновой скачки и синхронизации - на данный момент с этим сложно. Тем более никто пока не жаловался, что приложение кэширует картинки и вряд ли будут. Всё таки уже 21 век и интернеты уже не те ;)