From e49fc3994ca30f65231b7a58226e859771d3e155 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Wed, 10 Oct 2018 23:59:10 +0200 Subject: [PATCH] Reduce log spam for large downloads made from mach MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Printing the same line again is a no-op on an actual terminal, but Taskcluster’s log viewer shows each such line separately. --- python/servo/util.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/python/servo/util.py b/python/servo/util.py index c093978e631..8359ad90b28 100644 --- a/python/servo/util.py +++ b/python/servo/util.py @@ -18,6 +18,7 @@ from socket import error as socket_error import stat import StringIO import sys +import time import zipfile import urllib2 @@ -102,8 +103,10 @@ def download(desc, src, writer, start_byte=0): fsize = int(resp.info().getheader('Content-Length').strip()) + start_byte recved = start_byte - chunk_size = 8192 + chunk_size = 64 * 1024 + previous_progress_line = None + previous_progress_line_time = 0 while True: chunk = resp.read(chunk_size) if not chunk: @@ -112,7 +115,13 @@ def download(desc, src, writer, start_byte=0): if not dumb: if fsize is not None: pct = recved * 100.0 / fsize - print("\rDownloading %s: %5.1f%%" % (desc, pct), end="") + progress_line = "\rDownloading %s: %5.1f%%" % (desc, pct) + now = time.time() + duration = now - previous_progress_line_time + if progress_line != previous_progress_line and duration > .1: + print(progress_line, end="") + previous_progress_line = progress_line + previous_progress_line_time = now sys.stdout.flush() writer.write(chunk)