here is a example of what i'm doing import nuke import nukescripts import time
class ShapePanel( nukescripts.PythonPanel ): def __init__( self): nukescripts.PythonPanel.__init__( self, 'BoolKnobs' ) self.update = nuke.PyScript_Knob('update', 'Update') self.addKnob(self.update) self.nodes_match = [] self.bool_knobs = [] self.clear_bool_knobs() self.node_name = "" def create_bool_knobs(self): m = time.clock() del self.bool_knobs[:] print "clear list time: ",time.clock()-m print "list length ", len(self.nodes_match) for i in range(0,100): k = nuke.Boolean_Knob("a_knob",str(i),0) k.setFlag(nuke.STARTLINE) self.bool_knobs.append(k) for a in self.bool_knobs: ma = time.clock() self.addKnob(a) print "added knob time: ",time.clock()-ma print "total knob time: ",time.clock()-m def knobChanged(self, knob): if knob.name() == "showPannel" : self.clear_bool_knobs() elif knob is self.update: self.clear_bool_knobs() def clear_bool_knobs(self): for a in range(len(self.bool_knobs)): self.removeKnob(self.bool_knobs[a]) self.create_bool_knobs() p = ShapePanel() if p.show(): try: print "changed some stuff" except: print "no matching nodes found" 2015-02-17 13:31 GMT+01:00 michael vorberg <pingkin...@googlemail.com>: > 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