summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rwxr-xr-xviewprof34
-rw-r--r--viewprof.125
3 files changed, 60 insertions, 1 deletions
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 <http://www.gnu.org/licenses/>.
+
+
+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 <liw@liw.fi>
+.\"
+.\" 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/>.
+.\"
+.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.