run native modules

This commit is contained in:
2026-02-10 18:52:11 -06:00
parent 0d47002167
commit 504e268b9d
2 changed files with 62 additions and 3 deletions

View File

@@ -24,11 +24,25 @@ var symbol = 'js_' + safe + '_use'
var dylib_path = './' + name + '.dylib'
var fd = use('fd')
// --- Test argument for function-returning modules ---
var test_arg = 5000000
if (length(args) > 1) {
test_arg = number(args[1])
}
// --- Interpreted run ---
print('--- interpreted ---')
var t1 = os.now()
var result_interp = use(name)
var mod_interp = use(name)
var t2 = os.now()
var result_interp = null
if (is_function(mod_interp)) {
print('module returns a function, calling with ' + text(test_arg))
t1 = os.now()
result_interp = mod_interp(test_arg)
t2 = os.now()
}
result_interp = result_interp != null ? result_interp : mod_interp
var ms_interp = (t2 - t1) / 1000000
print('result: ' + text(result_interp))
print('time: ' + text(ms_interp) + ' ms')
@@ -43,8 +57,16 @@ print('\n--- native ---')
var t3 = os.now()
var lib = os.dylib_open(dylib_path)
var t4 = os.now()
var result_native = os.dylib_symbol(lib, symbol)
var mod_native = os.dylib_symbol(lib, symbol)
var t5 = os.now()
var result_native = null
if (is_function(mod_native)) {
print('module returns a function, calling with ' + text(test_arg))
t4 = os.now()
result_native = mod_native(test_arg)
t5 = os.now()
}
result_native = result_native != null ? result_native : mod_native
var ms_load = (t4 - t3) / 1000000
var ms_exec = (t5 - t4) / 1000000
var ms_native = (t5 - t3) / 1000000