From 4e390b1befa7a2124b673c0b09d4bffc05c6b5d1 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Tue, 6 Jul 2010 18:35:52 +1200 Subject: Add viewprof. --- Makefile | 2 +- viewprof | 34 ++++++++++++++++++++++++++++++++++ viewprof.1 | 25 +++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100755 viewprof create mode 100644 viewprof.1 diff --git a/Makefile b/Makefile index 772bc44..cd52cee 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ man1dir = $(mandir)/man1 progs = corrupt isascii scripts = assert do-until errno minimify onerror splitmboxdaily \ - setuppy-debian-versions-match + setuppy-debian-versions-match viewprof CFLAGS = -Wall -O2 --std=gnu99 diff --git a/viewprof b/viewprof new file mode 100755 index 0000000..2c4a534 --- /dev/null +++ b/viewprof @@ -0,0 +1,34 @@ +#!/usr/bin/python +# Copyright 2010 Lars Wirzenius +# +# 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 . + + +import pstats +import sys + +if len(sys.argv) not in [2, 3]: + sys.stderr.write('Usage: viewprof foo.prof [sort-order]\n') + sys.exit(1) + +if len(sys.argv) == 3: + order = sys.argv[2] +else: + order = 'cumulative' + +p = pstats.Stats(sys.argv[1]) +p.strip_dirs() +p.sort_stats(order) +p.print_stats() +p.print_callees() diff --git a/viewprof.1 b/viewprof.1 new file mode 100644 index 0000000..a9089b6 --- /dev/null +++ b/viewprof.1 @@ -0,0 +1,25 @@ +.\" Copyright 2010 Lars Wirzenius +.\" +.\" 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 . +.\" +.TH VIEWPROF 1 +.SH NAME +viewprof \- view Python profiler files +.SH SYNOPSIS +.B viewprof +.I foo.prof +.RI [ sort-order ] +.SH DESCRIPTION +.B viewprof +displays a Python profiler output file in human-readable form. -- cgit v1.2.1