mirror of
https://github.com/facebook/zstd.git
synced 2025-07-30 22:23:13 +03:00
fixed rate limited for high speed
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
#! /usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
# ################################################################
|
# ################################################################
|
||||||
# Copyright (c) 2018-present, Facebook, Inc.
|
# Copyright (c) 2018-present, Facebook, Inc.
|
||||||
@ -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