1- # Copyright (c) 2023-2024 Deephaven Data Labs and Patent Pending
1+ # Copyright (c) 2022-2025 Deephaven Data Labs and Patent Pending
22#
33# Supporting Deephaven queries to use the benchmark_snippet to investigate changes between releases
44# - Generate tables for best and wost static rates between the latest release and previous
55# - Generate table using same benchmarks as standard summmary SVG for comparison to previous releases
6- # Requirements: Deephaven 0.23 .0 or greater
6+ # Requirements: Deephaven 0.32 .0 or greater
77
88from urllib .request import urlopen ; import os
99
1010root = 'file:///nfs' if os .path .exists ('/nfs/deephaven-benchmark' ) else 'https://storage.googleapis.com'
1111with urlopen (root + '/deephaven-benchmark/benchmark_tables.dh.py' ) as r :
1212 benchmark_storage_uri_arg = root + '/deephaven-benchmark'
13- benchmark_category_arg = 'release' # release | nightly
14- benchmark_max_sets_arg = 5
13+ benchmark_category_arg = 'release'
14+ benchmark_max_sets_arg = 4
1515 benchmark_actor_filter_arg = 'deephaven'
16- benchmark_set_filter_arg = '[0-9]{2}[.][0-9]{3}[.][0-9]{2}'
1716 exec (r .read ().decode (), globals (), locals ())
1817
19- # Replace any characters that are illegal in DH column names
20- def column_name (name ):
21- name = name .replace ('/' ,'__' )
22- return re .sub ('[^A-Za-z0-9_$]' , '_' , name )
23-
2418# Return a table containing only non-obsolete benchmarks having at least two of the most recent versions
2519# Candidate for pulling up into deephaven_tables.py
2620def latest_comparable_benchmarks (filter_table ):
@@ -44,13 +38,13 @@ def latest_comparable_benchmarks(filter_table):
4438vers_tbl = newest_benchmarks .view (["deephaven_version" ])
4539
4640from deephaven import numpy as dhnp
47- vers = dhnp .to_numpy (newest_benchmarks .view (["deephaven_version" ]).first_by ())
48- print ("Vers: " , vers )
41+ vers = dhnp .to_numpy (newest_benchmarks .select_distinct (["deephaven_version" ]))
4942versLen = len (vers )
50- vers = [normalize_name (ver ) for ver in vers ]
43+ vers = [normalize_name ('V_' + ver [0 ]) for ver in vers ]
44+ print ("Vers: " , vers )
5145
5246past_static_rates = newest_benchmarks .where (['benchmark_name.endsWith(`-Static`)' ]) \
53- .group_by (['benchmark_name' ,'origin' , 'set_id ' ]) \
47+ .sort_descending ([ 'set_id' ]). group_by (['benchmark_name' ,'origin' ]) \
5448 .update (['Change=gain(op_rate[1], op_rate[0])' ]) \
5549 .update ([(vers [i ] + "=op_rate[" + str (i ) + "]" ) for i in range (versLen )]) \
5650 .view (['Static_Benchmark=benchmark_name.replace(` -Static`,``)' ,
@@ -74,5 +68,5 @@ def latest_comparable_benchmarks(filter_table):
7468 ("Static_Benchmark='" + name + "'" ) for name in summary_bechmark_names
7569])
7670
77- parquet_benchmarks = past_static_rates .where (["Static_Benchmark.startsWith (`Parquet`)" ]).sort (['Change' ])
71+ parquet_benchmarks = past_static_rates .where (["Static_Benchmark.contains (`Parquet`)" ]).sort (['Change' ])
7872
0 commit comments