diff options
author | Stefan Behnel <stefan_ml@behnel.de> | 2016-04-12 21:24:14 +0200 |
---|---|---|
committer | Stefan Behnel <stefan_ml@behnel.de> | 2016-04-12 21:24:14 +0200 |
commit | a0d67e2fdafabde83af8675f670a4f5939a513a7 (patch) | |
tree | f264bdbbd720dc17e6377f119847f6bc78eb1916 /Demos | |
parent | a9d2637a9e957d6bb41c1cb86c2eea2a3228e980 (diff) | |
download | cython-a0d67e2fdafabde83af8675f670a4f5939a513a7.tar.gz |
add a simple benchmark for f-strings
Diffstat (limited to 'Demos')
-rw-r--r-- | Demos/benchmarks/fstrings.py | 57 |
1 files changed, 57 insertions, 0 deletions
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) |