#!/usr/bin/python3 import sys import platform import time from multiprocessing import Process, Queue def run(queue, size): results = [0.] * size queue.put(results) print('on %s - %s' % (sys.version, ' '.join(platform.uname()))) for size in [ 7278 ] * 16 + [7279]: q = Queue() s = Process(target=run, args=(q, size)) s.start() t0 = time.time() try: s.join() except KeyboardInterrupt: join_duration = time.time() - t0 print('%(size)d entries: join() ABORTED by user after %(join_duration).2f sec' % locals()) continue join_duration = time.time() - t0 join_duration_us = join_duration * 1e6 get_t0 = time.time() vals = q.get(timeout=3.) get_duration = time.time() - get_t0 get_rate = len(vals) / get_duration print('%(size)d entries in flight, join() took %(join_duration_us).2f usec, get() did %(get_rate)f items/sec' % locals())