Changeset - 17b24cb10202
[Not reviewed]
default
0 2 0
Drew Perttula - 11 years ago 2014-06-13 07:34:12
drewp@bigasterisk.com
gather more output loop timing
Ignore-this: 723db286bb94478104b71f013b260fe
2 files changed with 7 insertions and 5 deletions:
0 comments (0 inline, 0 general)
bin/effecteval
Show inline comments
 
@@ -188,13 +188,14 @@ class App(object):
 
        self.graph = SyncedGraph(networking.rdfdb.url, "effectEval")
 
        self.graph.initiallySynced.addCallback(self.launch)
 

	
 
        self.stats = scales.collection('/',
 
                                       scales.PmfStat('sendLevels'),
 
                                       scales.PmfStat('getMusic'),
 
                                       scales.PmfStat('writeDmx'),
 
                                       scales.PmfStat('evals'),
 
                                       scales.PmfStat('sendOutupt'),
 
                                       scales.IntStat('errors'),
 
                                       )
 

	
 
    def launch(self, *args):
 
        self.loop = makeEffectLoop(self.graph, self.stats, self.outputWhere)
 
        self.loop.startLoop()
light9/effecteval/effectloop.py
Show inline comments
 
@@ -77,16 +77,18 @@ class EffectLoop(object):
 
                    # this may be piling on the handlers
 
                    self.graph.addHandler(self.setEffects)
 

	
 
                if song is None:
 
                    return
 

	
 
                outputs = self.allEffectOutputs(songTime)
 
                with self.stats.evals.time():
 
                    outputs = self.allEffectOutputs(songTime)
 
                combined = self.combineOutputs(outputs)
 
                self.logLevels(t1, combined)
 
                yield self.sendOutput(combined)
 
                with self.stats.sendOutput.time():
 
                    yield self.sendOutput(combined)
 
                
 
                elapsed = time.time() - t1
 
                dt = max(0, self.period - elapsed)
 
        except Exception:
 
            self.stats.errors += 1
 
            traceback.print_exc()
 
@@ -102,14 +104,13 @@ class EffectLoop(object):
 

	
 
        return out
 
        
 
    @inlineCallbacks
 
    def sendOutput(self, combined):
 
        dmx = combined.get_dmx_list()
 
        with self.stats.writeDmx.time():
 
            yield dmxclient.outputlevels(dmx, twisted=True)
 
        yield dmxclient.outputlevels(dmx, twisted=True)
 
        
 
    def allEffectOutputs(self, songTime):
 
        outputs = []
 
        for e in self.currentEffects:
 
            try:
 
                outputs.append(e.eval(songTime))
0 comments (0 inline, 0 general)