1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
#!/usr/bin/python
import pygtk
pygtk.require( '2.0' )
import gtk
import gobject
import time
import sys
from GUI.Core.MainWindow import MainWindow
from Framework.Constants import Constants
from Framework.CSound.CSoundClient import CSoundClient
from Framework.CSound.CSoundServer import CsoundServerMult
import lltimer
class GTKTimerWithCallback :
def __init__(self,msecs) :
gobject.timeout_add( msecs, self.printTime)
self.maxerr=0;
self.cumerr=0;
self.ctr=0;
self.msecs=msecs
self.lasttime=-1
def printTime(self) :
if self.lasttime==-1 :
self.lasttime=time.time()
else :
currtime = time.time()
diff = currtime-self.lasttime
self.lasttime = currtime
err= (diff*1000)-self.msecs
if err>self.maxerr :
self.maxerr=err
self.ctr+=1
self.cumerr+=abs(err)
if abs(err)>5:
print "GTK ms error",err,"mx",self.maxerr,"mean",(self.cumerr/self.ctr)
else :
print "Tick",time.time()
return True
class PThreadTimerWithCallback :
def __init__(self,msecs) :
lltimer.timeout_add(msecs,self.printTime)
self.maxerr=0;
self.cumerr=0;
self.ctr=0;
self.msecs=msecs
self.lasttime=-1;
def printTime(self) :
if self.lasttime==-1 :
self.lasttime=time.time()
else :
currtime = time.time()
diff = currtime-self.lasttime
self.lasttime = currtime
err= (diff*1000)-self.msecs
if err>self.maxerr :
self.maxerr=err
self.ctr+=1
self.cumerr+=abs(err)
if abs(err)>5 :
print "PThread ms error",err,"mx",self.maxerr,"mean",(self.cumerr/self.ctr)
else:
print "Tick",time.time()
return True
if __name__ == "__main__":
CSoundClient.initialize()
tamTam = MainWindow()
if len(sys.argv)<2 :
print "Usage timetest.py <gtk|pthread>"
print "You must be root or suid to benefit from pthread enhanced timing"
sys.exit(0)
if (sys.argv[1]=="gtk") :
t = GTKTimerWithCallback(1000)
elif (sys.argv[1]=="pthread"):
t = PThreadTimerWithCallback(1000)
else :
print "Usage timetest.py <gtk|pthread>"
print "You must be root or suid to benefit from pthread enhanced timing"
gtk.main()
|