Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Медленное исполнение питоновских функий ассета, вызванных вне самого а
Форум .:3DCenter.ru:. > Пакеты 3D моделирования > Houdini
VUX
Может здесь кто подскажет. Вобщем есть неприятный момент.
Функции из ассета ( те шо в hdaModule() ) исполняються крайне медленно (около 10 раз) если их вызывать извне, то есть по nodeType.hdaModule().
Если же они вызываются непосредственно ассетом, то скорость такая как и должна быть. Не могу понять, или гдето есть подвох, или это особенность архитектуры HOMа или это баг. Вот простой пример, который я выложил на одфорсе:
http://s21.postimage.org/5fabws4pz/2013_02...0x900_scrot.png
Здесь видно простой цыкл, повешенный на кнопку. Если мы ее нажимаем (то есть используем из ассета) - все нормально. Но например:
hou.node('/obj/myasset').parm('Test').pressButton() - замедляет исполнение до невыносимости. Так же если вызвать функцию питоновского модуля ассета посредством nodeType.hdaModule() - тоже скорости нет. Если же нажать кнопку програмно (вне ассета) hscript-ом, то скорость исполнения такая как и должна быть. Проблема для меня очень серезная. Раньше этого не замечал, так как в функциях не было обработки больших данных\множественных циклов.
Заметил чисто случайно когда вызвал извне функцию ассета, которая строит сцену из алембика и там было реально много обектов - лучше позже чем никогда ). Что думаете по этому поводу? Одфорс пока не особо радует ответами.
Zipper
Цитата(VUX @ 28/02/2013, 22:38) *
Может здесь кто подскажет. Вобщем есть неприятный момент.
Функции из ассета ( те шо в hdaModule() ) исполняються крайне медленно (около 10 раз) если их вызывать извне, то есть по nodeType.hdaModule().
Если же они вызываются непосредственно ассетом, то скорость такая как и должна быть. Не могу понять, или гдето есть подвох, или это особенность архитектуры HOMа или это баг. Вот простой пример, который я выложил на одфорсе:
http://s21.postimage.org/5fabws4pz/2013_02...0x900_scrot.png
Здесь видно простой цыкл, повешенный на кнопку. Если мы ее нажимаем (то есть используем из ассета) - все нормально. Но например:
hou.node('/obj/myasset').parm('Test').pressButton() - замедляет исполнение до невыносимости. Так же если вызвать функцию питоновского модуля ассета посредством nodeType.hdaModule() - тоже скорости нет. Если же нажать кнопку програмно (вне ассета) hscript-ом, то скорость исполнения такая как и должна быть. Проблема для меня очень серезная. Раньше этого не замечал, так как в функциях не было обработки больших данных\множественных циклов.
Заметил чисто случайно когда вызвал извне функцию ассета, которая строит сцену из алембика и там было реально много обектов - лучше позже чем никогда ). Что думаете по этому поводу? Одфорс пока не особо радует ответами.


Если проблема не в скрипте, то надежда только на сайдов, потому как сложно понять почему это происходит. Можно попробовать профилировать код, замерить время в разных местах при вызове из ассет и при вызове извне. Весь ли код медленно отрабатывает или какая-то функция его торможит. Возможно что и баг, отправь в саппорт простенькую сцену с описанием проблемы - должны помочь. Я с такой проблемой не сталкивался.
VUX
В том то и дело что замерять ничего не нада (уже).
Вот же на лицо простейший код, проще не куда:
Код
node = hou.node('/obj')
for i in range(1000):
  node.createNode('geo')

На моем ноуте нажатие на кнопку-параметр с таким кодом выполнение занимает ~3 сек.
Если программно (например из PythonShell) нажать эту кнопку или просто вызвать функцию - ~30 сек.
Пожалуй, еще подожду денек ответа с одфорса, и отправлю багрепорт.
Zipper
Цитата(VUX @ 01/03/2013, 00:29) *
В том то и дело что замерять ничего не нада (уже).
Вот же на лицо простейший код, проще не куда:
Код
node = hou.node('/obj')
for i in range(1000):
  node.createNode('geo')

На моем ноуте нажатие на кнопку-параметр с таким кодом выполнение занимает ~3 сек.
Если программно (например из PythonShell) нажать эту кнопку или просто вызвать функцию - ~30 сек.
Пожалуй, еще подожду денек ответа с одфорса, и отправлю багрепорт.


Проверил только что дома на винде, 185 билд. Всё одинаково по скорости, что на ассете нажать кнопку, что из питонШела через параметр кнопки - pressButton() , что через node.type().hdaModule().tst()
Создание 1000 нод занимает совершенно одинаковое время.
VUX
Интересно blink.gif . Буду проверять на остальных билдах. Спасибо Леша.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.