Skip to content

Instantly share code, notes, and snippets.

@lvsl-deactivated
Created November 25, 2012 09:10
Show Gist options
  • Save lvsl-deactivated/4142894 to your computer and use it in GitHub Desktop.
Save lvsl-deactivated/4142894 to your computer and use it in GitHub Desktop.
Using Dozer memory profiler in any python script
from wsgiref.simple_server import make_server
from wsgiref.util import setup_testing_defaults
import random
import threading
import dozer
def run_dozer():
# taken from wsgiref documentation
def simple_app(environ, start_response):
setup_testing_defaults(environ)
status = '200 OK'
headers = [('Content-type', 'text/plain')]
start_response(status, headers)
ret = ["%s: %s\n" % (key, value)
for key, value in environ.iteritems()]
return ret
simple_app = dozer.Dozer(simple_app)
httpd = make_server('', 8000, simple_app)
print "Serving on port 8000..."
httpd.serve_forever()
def start_dozer():
t = threading.Thread(target=run_dozer)
# this is important, if you forget this your script won't terminate
t.daemon = True
t.start()
def main():
start_dozer()
# consume some memory
while True:
d = {}
for i in xrange(10 ** 7):
d[random.random()] = random.random()
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment