diff options
author | René Stadler <mail@renestadler.de> | 2008-01-23 17:13:07 +0200 |
---|---|---|
committer | René Stadler <mail@renestadler.de> | 2008-01-23 17:13:07 +0200 |
commit | 6033796ad9eec6ece4a1189ea816d1277c4e7fb4 (patch) | |
tree | f3f24d49e0279dde50a4a7268989393632909260 /tests | |
parent | b0da91a829d867c332b9409f5582ffee5ec3f25d (diff) |
Move performance test program into its own file
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/performance.py | 80 |
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 () |