import subprocess, time for i in range(8): MB = 1024**2 LENGTH =2**i*MB data = b"X"*LENGTH p = subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE) time.sleep(1) t = time.time() x = p.communicate(data)[0] t = time.time() - t assert x == data print('amount = %.0f MB; time taken = %.2f secs; rate = %.2f MB/s' % ( 1.0*LENGTH/MB, t, 1.0*LENGTH/MB/t)) del x, data