pygame is
Python
Simple DirectMedia Layer
 
 
pygame.org is
Site Swing
Wiki

Profiling

      
Search:  
 
 

You can use this code to profile your pygame at the python level. With it you can find out the bits that are slowing down your game. If your game is going too slow, you will be able to find out what areas to improve.

If your main loop is not already in a main() function, just put it in one, and add the stuff below to your game.

def main():
    for x in range(10000):
        pass
        
import cProfile as profile
profile.run('main()')

Warning: the hotshot module has some bugs and may produce incorrect timings. Read the a python-dev mailing list thread titled "s/hotshot/lsprof" for details. It's better to use cProfile if you have python2.5+

import traceback,sys
 
def slow_function():
    # your code goes here.
    for x in range(10000):
        pass
 
 
def main():
    # your code goes here.
    slow_function()
 
 
if __name__ == "__main__":
    if "profile" in sys.argv:
        import hotshot
        import hotshot.stats
        import tempfile
        import os
 
        profile_data_fname = tempfile.mktemp("prf")
        try:
            prof = hotshot.Profile(profile_data_fname)
            prof.run('main()')
            del prof
            s = hotshot.stats.load(profile_data_fname)
            s.strip_dirs()
            print "cumulative\n\n"
            s.sort_stats('cumulative').print_stats()
            print "By time.\n\n"
            s.sort_stats('time').print_stats()
            del s
        finally:
            # clean up the temporary file name.
            try:
                os.remove(profile_data_fname)
            except:
                # may have trouble deleting ;)
                pass
    else:
        try:
            main()
        except:
            traceback.print_exc(sys.stderr)

Or if you're too lazy to copy all that in, this works as well (although not quite as fancily.)

Or you can use the @profile decorator from the profilehooks module by Marius Gedminas.

from profilehooks import profile
 
@profile
def main():
    ... # your code here
 
if __name__ == '__main__':
    main()
spotlight

 
our projects
pygame.org welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not.
 
recent releases
Apr 21, 2014


Apr 19, 2014

Apr 16, 2014

Apr 13, 2014

Apr 9, 2014

Mar 18, 2014


Mar 15, 2014


Mar 14, 2014

Mar 13, 2014

... more!
 
for pygame related questions, comments, and suggestions, please see help (lists, irc)