summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRené Stadler <mail@renestadler.de>2008-01-23 17:13:07 +0200
committerRené Stadler <mail@renestadler.de>2008-01-23 17:13:07 +0200
commit6033796ad9eec6ece4a1189ea816d1277c4e7fb4 (patch)
treef3f24d49e0279dde50a4a7268989393632909260 /tests
parentb0da91a829d867c332b9409f5582ffee5ec3f25d (diff)
Move performance test program into its own file
Diffstat (limited to 'tests')
-rwxr-xr-xtests/performance.py80
1 files changed, 80 insertions, 0 deletions
diff --git a/tests/performance.py b/tests/performance.py
new file mode 100755
index 0000000..97e11d5
--- /dev/null
+++ b/tests/performance.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python
+# -*- coding: utf-8; mode: python; -*-
+#
+# GStreamer Debug Viewer - View and analyze GStreamer debug log files
+#
+# Copyright (C) 2007 René Stadler <mail@renestadler.de>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 3 of the License, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program. If not, see <http://www.gnu.org/licenses/>.
+
+"""GStreamer Debug Viewer performance test program."""
+
+import sys
+import os
+import os.path
+from glob import glob
+import time
+
+import pygtk
+pygtk.require ("2.0")
+del pygtk
+
+import gobject
+
+sys.path.insert (0, os.path.join (sys.path[0], os.pardir))
+
+from GstDebugViewer import Common, Data, GUI
+
+class TestParsingPerformance (object):
+
+ def __init__ (self, filename):
+
+ self.main_loop = gobject.MainLoop ()
+ self.log_file = Data.LogFile (filename, Common.Data.DefaultDispatcher ())
+ self.log_file.consumers.append (self)
+
+ def start (self):
+
+ self.log_file.start_loading ()
+
+ def handle_load_started (self):
+
+ self.start_time = time.time ()
+
+ def handle_load_finished (self):
+
+ diff = time.time () - self.start_time
+ print "line cache built in %0.1f ms" % (diff * 1000.,)
+
+ start_time = time.time ()
+ model = GUI.LazyLogModel (self.log_file)
+ for row in model:
+ pass
+ diff = time.time () - start_time
+ print "model iterated in %0.1f ms" % (diff * 1000.,)
+ print "overall time spent: %0.1f s" % (time.time () - self.start_time,)
+
+ import resource
+ rusage = resource.getrusage (resource.RUSAGE_SELF)
+ print "time spent in user mode: %.2f s" % (rusage.ru_utime,)
+ print "time spent in system mode: %.2f s" % (rusage.ru_stime,)
+
+def main ():
+
+ if len (sys.argv) > 1:
+ test = TestParsingPerformance (sys.argv[1])
+ test.start ()
+
+if __name__ == "__main__":
+ main ()