aboutsummaryrefslogtreecommitdiff
path: root/tests/test_benchmark.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_benchmark.py')
-rw-r--r--tests/test_benchmark.py32
1 files changed, 21 insertions, 11 deletions
diff --git a/tests/test_benchmark.py b/tests/test_benchmark.py
index 9168c4de..60670ed4 100644
--- a/tests/test_benchmark.py
+++ b/tests/test_benchmark.py
@@ -70,17 +70,23 @@ class NativeBenchmarker(Benchmarker):
print '(using clang)'
shutil.copyfile(native_exec, filename + '.native')
shutil.copymode(native_exec, filename + '.native')
- self.filename = filename
+
+ final = os.path.dirname(filename) + os.path.sep + self.name+'_' + os.path.basename(filename) + '.native'
+ shutil.move(filename + '.native', final)
+ self.filename = final
def run(self, args):
- process = Popen([self.filename+'.native'] + args, stdout=PIPE, stderr=PIPE)
+ process = Popen([self.filename] + args, stdout=PIPE, stderr=PIPE)
return process.communicate()[0]
class JSBenchmarker(Benchmarker):
- def __init__(self, name, engine, extra_args=[]):
+ def __init__(self, name, engine, extra_args=[], env={}):
self.name = name
self.engine = engine
self.extra_args = extra_args
+ self.env = os.environ.copy()
+ for k, v in env.iteritems():
+ self.env[k] = v
def build(self, parent, filename, args, shared_args, emcc_args, native_args, native_exec, lib_builder):
self.filename = filename
@@ -97,28 +103,31 @@ process(sys.argv[1])
''' % str(args[:-1]) # do not hardcode in the last argument, the default arg
)
- try_delete(filename + '.js')
+ final = os.path.dirname(filename) + os.path.sep + self.name+'_' + os.path.basename(filename) + '.js'
+ try_delete(final)
output = Popen([PYTHON, EMCC, filename, #'-O3',
'-O2', '-s', 'DOUBLE_MODE=0', '-s', 'PRECISE_I64_MATH=0',
'--memory-init-file', '0', '--js-transform', 'python hardcode.py',
'-s', 'TOTAL_MEMORY=128*1024*1024',
#'--closure', '1',
- #'-g',
- '-o', filename + '.js'] + shared_args + emcc_args + self.extra_args, stdout=PIPE, stderr=PIPE).communicate()
- assert os.path.exists(filename + '.js'), 'Failed to compile file: ' + output[0]
+ #'-g2',
+ '-o', final] + shared_args + emcc_args + self.extra_args, stdout=PIPE, stderr=PIPE, env=self.env).communicate()
+ assert os.path.exists(final), 'Failed to compile file: ' + output[0]
+ self.filename = final
def run(self, args):
- return run_js(self.filename + '.js', engine=self.engine, args=args, stderr=PIPE, full_output=True)
+ return run_js(self.filename, engine=self.engine, args=args, stderr=PIPE, full_output=True)
# Benchmarkers
benchmarkers = [
NativeBenchmarker('clang', CLANG_CC, CLANG),
- NativeBenchmarker('gcc', 'gcc', 'g++'),
- JSBenchmarker('sm-f32', SPIDERMONKEY_ENGINE, ['-s', 'PRECISE_F32=2']),
+ #NativeBenchmarker('gcc', 'gcc', 'g++'),
+ #JSBenchmarker('sm-f32', SPIDERMONKEY_ENGINE, ['-s', 'PRECISE_F32=2']),
JSBenchmarker('sm', SPIDERMONKEY_ENGINE),
+ JSBenchmarker('sm-fc', SPIDERMONKEY_ENGINE, env={ 'EMCC_FAST_COMPILER': '1' }),
#JSBenchmarker('sm-noasm', SPIDERMONKEY_ENGINE + ['--no-asmjs']),
#JSBenchmarker('sm-noasm-f32', SPIDERMONKEY_ENGINE + ['--no-asmjs'], ['-s', 'PRECISE_F32=2']),
- JSBenchmarker('v8', V8_ENGINE)
+ #JSBenchmarker('v8', V8_ENGINE)
]
class benchmark(RunnerCore):
@@ -441,6 +450,7 @@ class benchmark(RunnerCore):
self.do_benchmark('linpack_float', open(path_from_root('tests', 'linpack.c')).read(), '''Unrolled Single Precision''', force_c=True, output_parser=output_parser, shared_args=['-DSP'])
def test_zzz_java_nbody(self): # tests xmlvm compiled java, including bitcasts of doubles, i64 math, etc.
+ if CORE_BENCHMARKS: return
args = [path_from_root('tests', 'nbody-java', x) for x in os.listdir(path_from_root('tests', 'nbody-java')) if x.endswith('.c')] + \
['-I' + path_from_root('tests', 'nbody-java')]
self.do_benchmark('nbody_java', '', '''Time(s)''',