Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@y0no
Created May 21, 2015 16:24
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save y0no/09826e83e643bc0f98c2 to your computer and use it in GitHub Desktop.
Save y0no/09826e83e643bc0f98c2 to your computer and use it in GitHub Desktop.
Circuits memory leak
#!/usr/bin/env python3
import resource
import matplotlib.pyplot as plt
from circuits import Component, Debugger, Event
class dummy(Event):
"""Dummy event"""
class value(Event):
"""Graph value event"""
def __init__(self, event_cnt, mem):
super(value, self).__init__(event_cnt, mem)
class graph(Event):
"""Event that request graphing"""
class MemoryLeakTest(Component):
nb_test = 1000
def init(self, *args, **kwargs):
self.start_mem = self.get_mem()
self.values = [self.start_mem]
def started(self, *args, **kwargs):
for cnt in range(self.nb_test):
yield self.call(dummy())
self.values.append(self.get_mem())
plt.plot(self.values)
plt.savefig('call.png')
print('Call count: %d' % self.nb_test)
print('Memory used: %f' % (self.get_mem() - self.start_mem))
raise SystemExit(0)
def get_mem(self):
return resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
def dummy(self):
return 1
MemoryLeakTest().run()
#!/usr/bin/env python3
import resource
import matplotlib.pyplot as plt
from circuits import Component, Debugger, Event
class dummy(Event):
"""Dummy event"""
class value(Event):
"""Graph value event"""
def __init__(self, event_cnt, mem):
super(value, self).__init__(event_cnt, mem)
class graph(Event):
"""Event that request graphing"""
class MemoryLeakTest(Component):
nb_test = 1000
def init(self, *args, **kwargs):
self.start_mem = self.get_mem()
self.values = [self.start_mem]
def started(self, *args, **kwargs):
for cnt in range(self.nb_test):
self.fire(dummy())
while len(self):
self.values.append(self.get_mem())
yield
plt.plot(self.values)
plt.savefig('fire.png')
print('Call count: %d' % self.nb_test)
print('Memory used: %f' % (self.get_mem() - self.start_mem))
raise SystemExit(0)
def get_mem(self):
return resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
def dummy(self):
return 1
MemoryLeakTest().run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment