i'm nearly done rewriting the whole thing as a PySide thing now. so far no speed problems
2015-02-21 0:46 GMT+01:00 michael vorberg <pingkin...@googlemail.com>: > but if you run the rebuild function in the main function, i guess before > the callback, its super fast to build the 100 knobs. but then when you hit > the rebuild function its getting slower with every knob you add. > > > is there a flag or something to exclude knobs from the knobChanged > callback? > > 2015-02-21 0:12 GMT+01:00 Nathan Rusch <nathan_ru...@hotmail.com>: > >> In 8.0v6, I get consistent (albeit slow) performance in my own quick >> test, averaging a fraction of a second for removal and about 5.5 seconds to >> add 100 knobs, followed by maybe 4 seconds for Nuke to actually redraw the >> panel. 9.0 seems to be slightly slower. Disabling undo doesn't make a >> difference either. >> >> >> class PerfTest(nukescripts.panels.PythonPanel): >> def __init__(self): >> super(PerfTest, self).__init__('PerfTest', 'something') >> self.addKnob(nuke.PyScript_Knob('rebuild')) >> self.boolKnobs = [] >> >> def knobChanged(self, knob): >> if knob.name() == 'rebuild': >> self.rebuild() >> >> def rebuild(self): >> mark = time.time() >> for k in reversed(self.boolKnobs): >> self.removeKnob(k) >> self.boolKnobs = [] >> mark 2 = time.time() >> print 'knob removal:', mark2 - mark >> for i in xrange(100): >> k = nuke.Boolean_Knob('bool_' + str(i)) >> k.setFlag(nuke.STARTLINE) >> self.addKnob(k) >> self.boolKnobs.append(k) >> print 'knob creation:', time.time() - mark2 >> >> >> -Nathan >> >> >> >> From: michael vorberg >> Sent: Tuesday, February 17, 2015 4:31 AM >> To: Nuke Python discussion >> Subject: [Nuke-python] nukescript panel add button >> >> >> hi, >> >> i create a nukescript panel which creates a some (boolean) buttons for >> nodes in my script. i filter these nodes in the panel via a user text input. >> >> if i start my panel it set a default filter and everything is fine and >> fast. when i hit my update button, i execute a callback function >> (knobChanged) and to delete all the create boolean knobs and search again >> in the nuke script and create new knobs. >> here everything gets slower over time, but i call the same functions as >> in the startup. >> >> i guess it will now call the knobChanged callback for every knob i create >> to look if they hit a condition in there. >> >> i messured the execution time in the functions and i can see clearly a >> dramatic increase in the time taken to create the knobs. >> >> startup call: >> >> >> search time: 0.00189313135161 >> >> clear list time: 2.67769610218e-06 >> >> list length 24 >> >> added knob time: 5.93556032982e-05 >> >> added knob time: 5.71241898797e-05 >> >> added knob time: 5.35539275006e-05 >> >> added knob time: 5.35539284101e-05 >> >> added knob time: 5.35539284101e-05 >> >> added knob time: 5.48927755517e-05 >> >> added knob time: 5.35539275006e-05 >> >> added knob time: 5.44464937775e-05 >> >> added knob time: 5.35539275006e-05 >> >> added knob time: 5.4446492868e-05 >> >> added knob time: 5.44464937775e-05 >> >> added knob time: 5.53390582354e-05 >> >> added knob time: 5.48927764612e-05 >> >> added knob time: 5.48927764612e-05 >> >> added knob time: 5.53390582354e-05 >> >> added knob time: 5.53390591449e-05 >> >> added knob time: 5.62316236028e-05 >> >> added knob time: 5.6677907196e-05 >> >> added knob time: 8.30085882626e-05 >> >> added knob time: 5.04299487147e-05 >> >> added knob time: 5.13225149916e-05 >> >> added knob time: 5.08762313984e-05 >> >> added knob time: 4.9983666031e-05 >> >> added knob time: 5.17687967658e-05 >> >> total knob time: 0.00277811001069 >> >> >> >> update call: >> >> search time: 0.00190384213693 >> >> clear list time: 3.12397969537e-06 >> >> list length 24 >> >> added knob time: 0.0111396632883 >> >> added knob time: 0.0114480446564 >> >> added knob time: 0.0120420469739 >> >> added knob time: 0.0123955028985 >> >> added knob time: 0.0129551414448 >> >> added knob time: 0.0135629785273 >> >> added knob time: 0.0142319563429 >> >> added knob time: 0.0150205379314 >> >> added knob time: 0.0158385741797 >> >> added knob time: 0.0169823968236 >> >> added knob time: 0.0177259038564 >> >> added knob time: 0.0187371805287 >> >> added knob time: 0.0198203087202 >> >> added knob time: 0.0210083133543 >> >> added knob time: 0.0222213098223 >> >> added knob time: 0.0236030011629 >> >> added knob time: 0.0248650887297 >> >> added knob time: 0.0262856066684 >> >> added knob time: 0.0277529842924 >> >> added knob time: 0.0292618662115 >> >> added knob time: 0.0308528641535 >> >> added knob time: 0.0329334342532 >> >> added knob time: 0.0344815890521 >> >> added knob time: 0.0362542240655 >> >> >> >> total knob time: 0.502958408235 >> >> >> >> if i have around 100 nodes in my list, the time for the last knobs is >> over 0.5 seconds. >> >> >> >> is there something i can do to prevent that? >> >> >> >> >> >> >> >> >> >> >> >> _______________________________________________ >> Nuke-python mailing list >> Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ >> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >> _______________________________________________ >> Nuke-python mailing list >> Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ >> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >> > >
_______________________________________________ Nuke-python mailing list Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python