Created
November 25, 2012 09:10
-
-
Save lvsl-deactivated/4142894 to your computer and use it in GitHub Desktop.
Using Dozer memory profiler in any python script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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