source: SHX/trunk/SeismicHandler/commands/memdebug.py @ 1131

Revision 1131, 2.4 KB checked in by klaus, 4 years ago (diff)

OnPaint? now make use of BufferedDC

Line 
1# -*- coding: utf-8 -*-
2
3#    This file is part of Seismic Handler eXtended (SHX). For terms of use and
4#    license information please see license.txt and visit
5#    http://www.seismic-handler.org/portal/wiki/Shx/LicenseTerms
6
7from SeismicHandler.basics import timestore
8from SeismicHandler.basics.command import BaseCommand
9from SeismicHandler.basics import timeit
10from SeismicHandler.core import Traces
11from SeismicHandler.modules.traces import Traces as BaseTraces, traces_from_list
12import os
13import time
14pymplerok = True
15try:
16    from pympler import muppy, summary, tracker
17except:
18    pymplerok = False
19
20provides = {"memdebug": "memdebug"}
21class memdebug(BaseCommand):
22    """
23    URI:http://www.seismic-handler.org/portal/wiki/ShDisplay
24    """
25    numberOfParameters = [1]
26    parameterQueries = [
27        {
28            "text": "subcmd",
29            "type": "str",
30            "question": False,
31        },
32    ]
33    redraw = False
34
35    def __init__(self, *args, **kwargs):
36        # unroll args & kwargs
37        BaseCommand.__init__(self, *args, **kwargs)
38
39    #@timeit
40    def run(self):
41        "Show help info."
42        global pytrack, lastcall
43        if not pymplerok:
44            print "no pympler module available"
45            print "install using 'sudo pip install pympler'"
46            return
47        subcmd = self.parameters[0].lower()
48        if subcmd == 'summary':
49            all_objects = muppy.get_objects()
50            sum1 = summary.summarize(all_objects)
51            summary.print_(sum1)
52        elif subcmd == 'tracker':
53            if pytrack == None:
54                pytrack = tracker.SummaryTracker()
55                print "tracker initialized"
56            else:
57                pytrack.print_diff()
58        elif subcmd == 'runtimes':
59            tdiff = time.time() - lastcall
60            timestore.dump( [
61                '.',
62                'SeismicHandler.modules.parse.',
63                'SeismicHandler.basics.messages.',
64                'SeismicHandler.commands.',
65                'SeismicHandler.config.runtime.',
66                ] )
67            print "time since last call: %7.4f" % tdiff
68            lastcall = time.time()
69        elif subcmd == 'clear_runtimes':
70            timestore.clear()
71            print "runtimes cleared"
72            lastcall = time.time()
73        else:
74            print "Unknown subcommand '%s'" % subcmd
75       
76
77pytrack = None
78lastcall = time.time()
Note: See TracBrowser for help on using the repository browser.