| 1234567891011121314151617181920212223242526272829 |
- #!/usr/bin/env python
- """Switch to a greenlet, which switches back to it's parent over and over again,
- and report the elapsed CPU time."""
- import optparse
- import time
- import greenlet
- def run_test(n):
- def f(*args, **kwargs):
- greenlet.getcurrent().parent.switch(*args, **kwargs)
- g = greenlet.greenlet(f)
- for i in xrange(n):
- g.switch(1, 2, 3, a=5, b=6)
- if __name__ == '__main__':
- p = optparse.OptionParser(
- usage='%prog [-n NUM_SWITCHES]', description=__doc__)
- p.add_option('-n', type='int', dest='num_switches', default=10000000)
- options, args = p.parse_args()
- if len(args) != 0:
- p.error('unexpected arguments: %s' % ', '.join(args))
- start_time = time.clock()
- run_test(options.num_switches)
- print options.num_switches, 'switches:', time.clock() - start_time, 'sec'
|