From fcca32fb8e5d6f9800b7e5520140319305bfbae2 Mon Sep 17 00:00:00 2001 From: Jakub Chaloupka Date: Tue, 22 Sep 2026 16:44:45 +0200 Subject: [PATCH] [GR-79870] Add Pygal demo to Python CI benchmarks --- .../python/macro/pygal-demo.py | 58 +++++++++++++++++++ mx.graalpython/mx_graalpython_bench_param.py | 1 + 2 files changed, 59 insertions(+) create mode 100644 graalpython/com.oracle.graal.python.benchmarks/python/macro/pygal-demo.py diff --git a/graalpython/com.oracle.graal.python.benchmarks/python/macro/pygal-demo.py b/graalpython/com.oracle.graal.python.benchmarks/python/macro/pygal-demo.py new file mode 100644 index 0000000000..10937b0e1b --- /dev/null +++ b/graalpython/com.oracle.graal.python.benchmarks/python/macro/pygal-demo.py @@ -0,0 +1,58 @@ +# Copyright (c) 2026, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# The Universal Permissive License (UPL), Version 1.0 +# +# Subject to the condition set forth below, permission is hereby granted to any +# person obtaining a copy of this software, associated documentation and/or +# data (collectively the "Software"), free of charge and under any and all +# copyright rights in the Software, and any and all patent rights owned or +# freely licensable by each licensor hereunder covering either (i) the +# unmodified Software as contributed to or provided by such licensor, or (ii) +# the Larger Works (as defined below), to deal in both +# +# (a) the Software, and +# +# (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if +# one is included with the Software each a "Larger Work" to which the Software +# is contributed by such licensors), +# +# without restriction, including without limitation the rights to copy, create +# derivative works of, display, perform, and distribute the Software and make, +# use, sell, offer for sale, import, export, have made, and have sold the +# Software and the Larger Work(s), and to sublicense the foregoing rights on +# either these or other terms. +# +# This license is subject to the following condition: +# +# The above copyright notice and either this complete permission notice or at a +# minimum a reference to the UPL must be included in all copies or substantial +# portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +from math import cos + +ensure_packages(pygal="3.0.5") +import pygal + + +def __benchmark__(iterations=1000): + result = None + for _ in range(iterations): + chart = pygal.XY() + chart.title = "XY Cosinus" + chart.add("x = cos(y)", [(cos(x / 10.0), x / 10.0) for x in range(-50, 50, 5)]) + chart.add("y = cos(x)", [(x / 10.0, cos(x / 10.0)) for x in range(-50, 50, 5)]) + chart.add("x = 1", [(1, -5), (1, 5)]) + chart.add("x = -1", [(-1, -5), (-1, 5)]) + chart.add("y = 1", [(-5, 1), (5, 1)]) + chart.add("y = -1", [(-5, -1), (5, -1)]) + result = chart.render().decode() + return result diff --git a/mx.graalpython/mx_graalpython_bench_param.py b/mx.graalpython/mx_graalpython_bench_param.py index 3a8515246f..6903af6588 100644 --- a/mx.graalpython/mx_graalpython_bench_param.py +++ b/mx.graalpython/mx_graalpython_bench_param.py @@ -307,6 +307,7 @@ def _pickling_benchmarks(module='pickle'): MACRO_BENCHMARKS = { 'gcbench': ITER_10 + ['10'], + 'pygal-demo': ITER_10 + ['1000'], 'c-cythonize-numpy': ITER_1 + [], 'c-pydantic-schema-build': ITER_10 + ['100'], 'c-pydantic-serialize-json': ITER_10 + ['1000'],