В воскресенье хорошо перекорёжил код, в основном под будущие изменения. В частности добавил оптимизаций в основной алгоритм который пока отнимает больше всего времени. Я ожидал ускорения на 20-30% но на тестовой выборке в 1000 нп скорость увеличилась всего на 5%. Потом оптимизировал ещё. Сегодня запустил валидатор на утреннем дампе. В итоге оказалось что всё стало работать безумно медленно. Валидатор работал на 30% времени дольше чем обычно и до конца ему было работать и работать, я уже ушёл с работы. Такой вот неожиданный результат “оптимизаций”, но в бете это ожидаемо.
Надеюсь что завтра утром валидатор отработает и я опубликую его результаты (если конечно ещё проблем не обнаружится). И потом буду профилировать работу чтобы понять чего же это я так наоптимизировал
“Богатыри - не мы”. Сколько ни пробовал ради общего развития изучать основы программирования - дальше “Хеллоу, Вёрлд!” не продвинулся. Извините за офтоп…
Вместо стандартных 4-х часов валидатор работал почти 9 часов. Но возможно причина не только в кривизне оптимизации а в том что границы аж двух регионов оказались сломаны - Тверской области и Смоленской области!
А алгоритмы частично оптимизированы под то что границы регионов живые, в случае разломанных границ валидатор идёт по неоптимизированной ветке а там реально всё медленнее. Но по любому после окончания оптимизаций эта проблема не будет стоять так остро, просто будет некоторое замедление работы.
И да, почините, пожалуйста, границы. Иначе валидатор будет слишком долго работать …
У меня дамп вчерашний, утренний. В нём граница России не сломана, но ничто не мешало сломать её позже. Её проще проверить в JOSM - результат проверки целости границы будет актуальным (хотя и придётся подождать пока границы загружаются).
Поскольку из-за массово порушенных границ валидатор навыдавал гору ошибок которые, как я надеюсь, неактуальны, то решил не выкладывать результаты текущего прогона. Сегодня попрофилирую самый медленный алгоритм, и или найду багу у себя или пойму что поломанные границы настолько критичны для текущей версии алгоритма. Завтра скачаю утренний дамп и на нём попробую получить более чистый прогон. Заодно и поймём насколько удалось восстановить границы.
Из мелочей - теперь обрабатываются isolated_dwelling, а admin_level=9 почему-то всё равно обрабатывается с ошибками - постараюсь сегодня ещё раз глянуть туда.