mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[utils] Add a CSV-output mode to rusage script.
This commit is contained in:
@@ -31,6 +31,8 @@
|
||||
#
|
||||
|
||||
import argparse
|
||||
import csv
|
||||
import datetime
|
||||
import resource
|
||||
import subprocess
|
||||
import sys
|
||||
@@ -85,6 +87,16 @@ parser.add_argument("--verbose",
|
||||
action='store_true',
|
||||
default=False,
|
||||
help="always report status and usage")
|
||||
parser.add_argument("--csv",
|
||||
action='store_true',
|
||||
default=False,
|
||||
help="write results as CSV")
|
||||
parser.add_argument("--csv-output", default="-",
|
||||
type=argparse.FileType('ab', 0),
|
||||
help="Append CSV output to file")
|
||||
parser.add_argument("--csv-name", type=str,
|
||||
default=str(datetime.datetime.now()),
|
||||
help="Label row in CSV with name")
|
||||
parser.add_argument('remainder', nargs=argparse.REMAINDER,
|
||||
help="subcommand to run under supervision")
|
||||
|
||||
@@ -132,6 +144,15 @@ if over_time:
|
||||
sys.stderr.write("rusage: exceeded limit: %.6f secs\n"
|
||||
% args.time)
|
||||
|
||||
if args.csv:
|
||||
fieldnames = ["time", "mem", "run"]
|
||||
out = csv.DictWriter(args.csv_output, fieldnames, dialect='excel-tab')
|
||||
if args.csv_output.tell() == 0:
|
||||
out.writeheader()
|
||||
out.writerow(dict(time=used.ru_utime,
|
||||
mem=used.ru_maxrss,
|
||||
run=args.csv_name))
|
||||
|
||||
if over_mem or over_time:
|
||||
sys.exit(-1)
|
||||
sys.exit(ret)
|
||||
|
||||
Reference in New Issue
Block a user