From a0d67e2fdafabde83af8675f670a4f5939a513a7 Mon Sep 17 00:00:00 2001 From: Stefan Behnel Date: Tue, 12 Apr 2016 21:24:14 +0200 Subject: add a simple benchmark for f-strings --- Demos/benchmarks/fstrings.py | 57 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Demos/benchmarks/fstrings.py (limited to 'Demos') diff --git a/Demos/benchmarks/fstrings.py b/Demos/benchmarks/fstrings.py new file mode 100644 index 000000000..5cf46de53 --- /dev/null +++ b/Demos/benchmarks/fstrings.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# NOTE: requires Python 3.6 or later if not compiled with Cython + +from time import time + +import cython + + +@cython.locals(x=int, n=int) +def run(): + t0 = time() + + f = 1.0 + x = 2 + n = 5 + s = 'abc' + u = u'üöä' + + for i in range(100): + f"{n}oo{n*10}{f:.2}--{n:2}{n:5}oo{i}" + f"{n}oo{n*10}{f:.2}--{n:2}{n:5}oo{i}" + f"{n}oo{n*10}{f:.2}--{n:2}{n:5}oo{i}" + f"{n}oo{n*10}{f:.2}--{n:2}{n:5}oo{i}" + f"{n}oo{n*10}{f:.2}--{n:2}{n:5}oo{i}" + + f"{n}oo{n*10}{f:.2}--{n:2}{n:5}oo{i}" + f"{n}oo{n*10}{f:.2}--{n:2}{n:5}oo{i}" + f"{n}oo{n*10}{f:.2}--{n:2}{n:5}oo{i}" + f"{n}oo{n*10}{f:.2}--{n:2}{n:5}oo{i}" + f"{n}oo{n*10}{f:.2}--{n:2}{n:5}oo{i}" + + f"{n}oo{n*10}{f:3.2}--{n:2}{n:5}oo{i}{s}" + f"{n}oo{n*10}{f:5.2}--{n:2}{n:5}oo{i}{u}" + f"{n}oo{n*10}{f:2.2}--{n:2}{n:5}oo{i}{s}xx{u}" + + tk = time() + return tk - t0 + + +def main(n): + run() # warmup + times = [] + for i in range(n): + times.append(run()) + return times + + +if __name__ == "__main__": + import optparse + import util + parser = optparse.OptionParser( + usage="%prog [options]", + description="Test the performance of fstring literal formatting") + util.add_standard_options_to(parser) + options, args = parser.parse_args() + + util.run_benchmark(options, options.num_runs, main) -- cgit v1.2.1