~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

  • Committer: mbp at sourcefrog
  • Date: 2005-04-11 02:53:57 UTC
  • Revision ID: mbp@sourcefrog.net-20050411025357-af577721308648ae
- remove profiler temporary file when done

Show diffs side-by-side

added added

removed removed

Lines of Context:
986
986
 
987
987
    if profile:
988
988
        import hotshot
989
 
        pfname = tempfile.mkstemp()[1]
990
 
        prof = hotshot.Profile(pfname)
991
 
        ret = prof.runcall(cmd_handler, **cmdargs) or 0
992
 
        prof.close()
993
 
 
994
 
        import hotshot.stats
995
 
        stats = hotshot.stats.load(pfname)
996
 
        #stats.strip_dirs()
997
 
        stats.sort_stats('time')
998
 
        ## XXX: Might like to write to stderr or the trace file instead but
999
 
        ## print_stats seems hardcoded to stdout
1000
 
        stats.print_stats(20)
1001
 
 
1002
 
        return ret
 
989
        pffileno, pfname = tempfile.mkstemp()
 
990
        try:
 
991
            prof = hotshot.Profile(pfname)
 
992
            ret = prof.runcall(cmd_handler, **cmdargs) or 0
 
993
            prof.close()
 
994
 
 
995
            import hotshot.stats
 
996
            stats = hotshot.stats.load(pfname)
 
997
            #stats.strip_dirs()
 
998
            stats.sort_stats('time')
 
999
            ## XXX: Might like to write to stderr or the trace file instead but
 
1000
            ## print_stats seems hardcoded to stdout
 
1001
            stats.print_stats(20)
 
1002
            
 
1003
            return ret
 
1004
 
 
1005
        finally:
 
1006
            os.close(pffileno)
 
1007
            os.remove(pfname)
1003
1008
    else:
1004
1009
        return cmd_handler(**cmdargs) or 0
1005
1010