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

Reply via email to