From a996b1fd2d74c50a77e8ed0303f3ca0a87e45b2f Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Fri, 10 Aug 2018 17:39:00 -0700 Subject: [PATCH] fixed rate limited for high speed --- tests/rateLimiter.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/rateLimiter.py b/tests/rateLimiter.py index 559f2275a..134ef8971 100755 --- a/tests/rateLimiter.py +++ b/tests/rateLimiter.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python3 +#!/usr/bin/env python3 # ################################################################ # Copyright (c) 2018-present, Facebook, Inc. @@ -17,7 +17,9 @@ import sys 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() total_read = 0 @@ -25,9 +27,11 @@ buf = " " while len(buf): now = time.time() 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() - sys.stdout.write(buf) + sys.stdout.buffer.write(buf) write_end = time.time() - start += write_end - write_start + start += write_end - write_start # exclude write delay total_read += len(buf)