• S sverchok
  • Информация о проекте
    • Информация о проекте
    • Активность
    • Метки
    • Участники
  • Репозиторий
    • Репозиторий
    • Файлы
    • Коммиты
    • Ветки
    • Теги
    • Участники
    • Диаграмма
    • Сравнение
  • Задачи 148
    • Задачи 148
    • Список
    • Доски
    • Спринты
  • Запросы на слияние 21
    • Запросы на слияние 21
  • CI/CD
    • CI/CD
    • Конвейеры
    • Задания
    • Расписания
  • Развертывания
    • Развертывания
    • Окружения
    • Релизы
  • Пакеты и реестры
    • Пакеты и реестры
    • Реестр пакетов
    • Реестр контейнеров
  • Мониторинг
    • Мониторинг
    • Инциденты
  • Аналитика
    • Аналитика
    • Поток ценности
    • CI/CD
    • Репозиторий
  • Wiki
    • Wiki
  • Сниппеты
    • Сниппеты
  • Активность
  • Диаграмма
  • Создать новую задачу
  • Задания
  • Коммиты
  • Доски с задачами
Свернуть панель
  • nikitronn
  • sverchok
  • Задачи
  • #1934
Закр.
Открыто
Задача созд. Дек 15, 2017 пользователемnikitronn@nikitronnВладелец

Unnecessary updates (tree recalculations)?

Created by: portnov

While doing performance investigations about "bend along surface", I put output of stack trace at the beginning of do_update_general, and saw this after pressing "Update NodeTree" button:

2017-12-16 00:35:02,499 [DEBUG] sverchok.core.update_system: update:
  File "/home/portnov/.config/blender/2.79/scripts/addons/sverchok-master/utils/sv_panels_tools.py", line 82, in execute
    process_tree(ng)

  File "/home/portnov/.config/blender/2.79/scripts/addons/sverchok-master/core/update_system.py", line 455, in process_tree
    do_update(l, ng.nodes)

  File "/home/portnov/.config/blender/2.79/scripts/addons/sverchok-master/core/update_system.py", line 353, in do_update
    do_update_general(node_list, nodes)

  File "/home/portnov/.config/blender/2.79/scripts/addons/sverchok-master/utils/profile.py", line 103, in wrapper
    return func(*args, **kwargs)

  File "/home/portnov/.config/blender/2.79/scripts/addons/sverchok-master/core/update_system.py", line 312, in do_update_general
    debug("update:\n"+"\n".join(traceback.format_stack()))

2017-12-16 00:35:13,689 [DEBUG] sverchok.core.update_system: update:
  File "/home/portnov/.config/blender/2.79/scripts/addons/sverchok-master/core/handlers.py", line 78, in sv_main_handler
    ng.process()

  File "/home/portnov/.config/blender/2.79/scripts/addons/sverchok-master/node_tree.py", line 520, in process
    process_tree(self)

  File "/home/portnov/.config/blender/2.79/scripts/addons/sverchok-master/core/update_system.py", line 455, in process_tree
    do_update(l, ng.nodes)

  File "/home/portnov/.config/blender/2.79/scripts/addons/sverchok-master/core/update_system.py", line 353, in do_update
    do_update_general(node_list, nodes)

  File "/home/portnov/.config/blender/2.79/scripts/addons/sverchok-master/utils/profile.py", line 103, in wrapper
    return func(*args, **kwargs)

  File "/home/portnov/.config/blender/2.79/scripts/addons/sverchok-master/core/update_system.py", line 312, in do_update_general
    debug("update:\n"+"\n".join(traceback.format_stack()))

As far as I understand, the thing is the button calls process_tree() directly, and does not set has_changed = False; that's why sv_main_handler thinks it needs to recalculate everything yet another time immediately after first update.

Ответственный
Назначить
Оценка трудозатрат