Skip to content

Instantly share code, notes, and snippets.

@serihiro
Created April 24, 2019 03:07
Show Gist options
  • Save serihiro/ede45fece01db46194795baf724891ac to your computer and use it in GitHub Desktop.
Save serihiro/ede45fece01db46194795baf724891ac to your computer and use it in GitHub Desktop.
Python3 multiprosessing.Queue performance test
import multiprocessing
import os
import sys
import time
import random
def enqueue(_queue, count):
_queue.cancel_join_thread()
for i in range(count):
_queue.put(random.randint(0,count), timeout=1)
queues = []
processes = []
concurrency = 24
s = time.time()
for i in range(concurrency):
q = multiprocessing.Queue()
queues.append(q)
e = time.time() - s
print(f'{e}')
start = time.time()
for i in range(concurrency):
p = multiprocessing.Process(target=enqueue, args=[queues[i], 10000])
p.start()
processes.append(p)
queues.append(q)
for p in processes:
p.join()
elapsed_time = time.time() - start
print(f'{elapsed_time}')
for i in range(concurrency):
print(queues[i].qsize())
import multiprocessing
import os
import sys
import time
import random
def enqueue(count):
test_queue.cancel_join_thread()
for i in range(count):
test_queue.put(random.randint(0,count), timeout=1)
test_queue = multiprocessing.Queue()
processes = []
concurrency = 24
start = time.time()
for i in range(concurrency):
p = multiprocessing.Process(target=enqueue, args=[10000])
p.start()
processes.append(p)
for p in processes:
p.join()
elapsed_time = time.time() - start
print(f'{elapsed_time}')
print(test_queue.qsize())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment