mirror of
https://github.com/facebook/zstd.git
synced 2025-08-01 09:47:01 +03:00
fixed rate limited for high speed
This commit is contained in:
@ -17,7 +17,9 @@
|
|||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
||||||
rate = float(sys.argv[1]) * 1024 * 1024
|
MB = 1024 * 1024
|
||||||
|
rate = float(sys.argv[1]) * MB
|
||||||
|
rate *= 1.25 # compensation for excluding write time (experimentally determined)
|
||||||
start = time.time()
|
start = time.time()
|
||||||
total_read = 0
|
total_read = 0
|
||||||
|
|
||||||
@ -25,9 +27,11 @@ buf = " "
|
|||||||
while len(buf):
|
while len(buf):
|
||||||
now = time.time()
|
now = time.time()
|
||||||
to_read = max(int(rate * (now - start) - total_read), 1)
|
to_read = max(int(rate * (now - start) - total_read), 1)
|
||||||
buf = sys.stdin.read(to_read)
|
max_buf_size = 1 * MB
|
||||||
|
to_read = min(to_read, max_buf_size)
|
||||||
|
buf = sys.stdin.buffer.read(to_read)
|
||||||
write_start = time.time()
|
write_start = time.time()
|
||||||
sys.stdout.write(buf)
|
sys.stdout.buffer.write(buf)
|
||||||
write_end = time.time()
|
write_end = time.time()
|
||||||
start += write_end - write_start
|
start += write_end - write_start # exclude write delay
|
||||||
total_read += len(buf)
|
total_read += len(buf)
|
||||||
|
Reference in New Issue
Block a user