Чудовищно медленная загрузка Оперы 11 с большим архивом RSS
Я долгое время пользуюсь Оперой исключительно как RSS-агрегатором. Для серфинга использую другие браузеры. И поэтому очень долго сидел на старинной версии 8.54, следуя принципу «не трогай то, что работает и устраивает». Восьмерка (в рамках указанной функции) устраивала почти полностью, если только не считать немного подтормаживающего полнотектового поиска.
За несколько лет у меня накопился большой архив лент с нескольких блогов и форумов — в общей сложности порядка 300К сообщений.
Ну и вот сегодня черт дернул меня обновиться на распоследнюю 11.01 :)
Сама Опера установилось быстро и первым делом сказала, что «нужно перевести базу сообщений в новый формат». Ну надо так надо. Это заняло около 3 часов.
Потом появился прогресс индикатор «Загрузка базы сообщений», который двигался просто чудовищно медленно и грузил процессор на 100%. Сколько точно это продолжалось, я не засёк, но никак не меньше получаса. Я решил, что после конвертации базы она обновляет индекс для полнотекстового поиска. Версия вроде бы подтвердилась тем, что когда база наконец-то загрузилась, поиск по сообщениям действительно заработал намного быстрее, чем это было в восьмерке. Фактически, всё ищется в реальном времени.
Потом я закрыл Оперу, запустил снова и… снова эта «Загрузка базы сообщений» с теми же темпами! Рядом с прогресс индиктором есть крестик (отмена, я полагаю?) — но он на клики не реагирует. Проц загружен на 100%.
Что делать, други?! Она теперь каждый раз будет у меня стартовать по часу?
О скорости можно судить по такому факту: я уже успел немного погуглить решение сей проблемы (пока безуспешно) и набрать вот этот вопрос — база загрузилась на 45%. Нафига мне все эти рюшечки новой версии, если она тупо не работает?
Монитор обращений к диску показывает, что идет массированное хаотичное (смещения в файлах скачут непредсказуемым образом) чтение из базы сообщений и из «лексикона» очень маленькими блоками (в основном 4-8К, с редкими колебаниями от 1 до 64К). Судя по всему, она читает все 300 тысяч сообщений поштучно, причем в непонятной последовательности! Общее время загрузки базы (теперь засёк) значительно больше часа.
Налицо какой-то дико неоптимальный алогоритм, индусы что ли писали?
Может и так, но как-то странно.
1. Объем базы на диске порядка 1.5Г, а пиковое потребление оперативки лишь около 200М.
2. Чтобы просто прочитать полтога гига данных, нужно явно меньше времени и не близкая к 100% загрузка проца.
Такое впечатление, что она каждый раз в реальном времени строит какие-то поисковые индексы. Или работает какой-то (раз)архиватор. Или что-то наподобии.
Я отписался на их официальном форуме, пока тишина. Гугление выявило несколько похожих тем на англоязычных форумах — судя по ним, проблема тянется минимум с 10-ки. И какого-то решения (не считая костылей типа «удалите лишнее») нигде не видно.
Оно им не надо. Тем более есть подозрение, что проблема не в каком-то баге, концептуальной архитектуре (см. моё уточнение к вопросу). Кто её будет менять? Никто.
Последнее время оперовцы только окошки гламурят, а с основным функционалом типа рендера HTML и работы JS у них всё идёт своим, особенным путём. :)
Проще, наверное, откатиться на старое, благо бэкап сделал.