import gc import pickle import sys import threading import time #sys.setswitchinterval(1e-1) #gc.disable() def bg_func(): while True: time.sleep(1e-3) print("x", end='', flush=True) t = threading.Thread(target=bg_func, daemon=True) t.start() def main(): N = 10_000_000 data = [None] * N clock = time.process_time times = [] for i in range(4): t1 = clock() pickle.dumps(data, protocol=3) dt = clock() - t1 times.append(dt) print("min / max: {:.1f} / {:.1f} ms".format(min(times) * 1e3, max(times) * 1e3)) main()