Skip to content

Commit e5ef237

Browse files
committed
mx benchmark: add a default vm and jmh benchmark (if mx is primary suite)
1 parent d94a898 commit e5ef237

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

mx.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13719,6 +13719,7 @@ def main():
1371913719
primarySuiteMxDir = _findPrimarySuiteMxDir()
1372013720
if primarySuiteMxDir == _mx_suite.mxDir:
1372113721
_init_primary_suite(_mx_suite)
13722+
mx_benchmark.init_benchmark_suites()
1372213723
elif primarySuiteMxDir:
1372313724
_src_suitemodel.set_primary_dir(dirname(primarySuiteMxDir))
1372413725
userHome = _opts.user_home if hasattr(_opts, 'user_home') else os.path.expanduser('~')

mx_benchmark.py

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -688,6 +688,30 @@ def run(self, cwd, args):
688688
return code, out, dims
689689

690690

691+
class DefaultJavaVm(OutputCapturingJavaVm):
692+
def __init__(self, raw_name, raw_config_name):
693+
self.raw_name = raw_name
694+
self.raw_config_name = raw_config_name
695+
696+
def name(self):
697+
return self.raw_name
698+
699+
def config_name(self):
700+
return self.raw_config_name
701+
702+
def post_process_command_line_args(self, args):
703+
return args
704+
705+
def dimensions(self, cwd, args, code, out):
706+
return {
707+
"host-vm": self.name(),
708+
"host-vm-config": self.config_name(),
709+
}
710+
711+
def run_java(self, args, out=None, err=None, cwd=None, nonZeroIsFatal=False):
712+
mx.get_jdk().run_java(args, out=out, err=out, cwd=cwd, nonZeroIsFatal=False)
713+
714+
691715
def add_java_vm(javavm):
692716
key = (javavm.name(), javavm.config_name())
693717
if key in _bm_suite_java_vms:
@@ -827,6 +851,17 @@ def jmhJAR(self):
827851
return jmh_jar
828852

829853

854+
class JMHRunnerMxBenchmarkSuite(JMHRunnerBenchmarkSuite):
855+
def name(self):
856+
return "jmh-mx"
857+
858+
def group(self):
859+
return "Graal"
860+
861+
def subgroup(self):
862+
return "mx"
863+
864+
830865
class BenchmarkExecutor(object):
831866
def uid(self):
832867
return str(uuid.uuid1())
@@ -865,7 +900,7 @@ def machineRam(self):
865900

866901
def branch(self):
867902
mxsuite = mx.primary_suite()
868-
name = mxsuite.vc.active_branch(mxsuite.dir, abortOnError=False) or "<unknown>"
903+
name = mxsuite.vc and mxsuite.vc.active_branch(mxsuite.dir, abortOnError=False) or "<unknown>"
869904
return name
870905

871906
def buildUrl(self):
@@ -1008,6 +1043,12 @@ def benchmark(self, mxBenchmarkArgs, bmSuiteArgs):
10081043
_benchmark_executor = BenchmarkExecutor()
10091044

10101045

1046+
def init_benchmark_suites():
1047+
"""Called after mx initialization if mx is the primary suite."""
1048+
add_java_vm(DefaultJavaVm("server", "default"))
1049+
add_bm_suite(JMHRunnerMxBenchmarkSuite())
1050+
1051+
10111052
def splitArgs(args, separator):
10121053
"""Splits the list of string arguments at the first separator argument.
10131054

0 commit comments

Comments
 (0)