forked from Mirrors/wasm3
parent
29a5d80880
commit
e25d4f97a8
@ -0,0 +1,32 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import wasm3
|
||||||
|
import time, timeit
|
||||||
|
|
||||||
|
# WebAssembly binary
|
||||||
|
WASM = bytes.fromhex("""
|
||||||
|
00 61 73 6d 01 00 00 00 01 06 01 60 01 7e 01 7e
|
||||||
|
03 02 01 00 07 07 01 03 66 69 62 00 00 0a 1f 01
|
||||||
|
1d 00 20 00 42 02 54 04 40 20 00 0f 0b 20 00 42
|
||||||
|
02 7d 10 00 20 00 42 01 7d 10 00 7c 0f 0b
|
||||||
|
""")
|
||||||
|
|
||||||
|
def run_wasm():
|
||||||
|
env = wasm3.Environment()
|
||||||
|
rt = env.new_runtime(4096)
|
||||||
|
mod = env.parse_module(WASM)
|
||||||
|
rt.load(mod)
|
||||||
|
wasm_fib = rt.find_function("fib")
|
||||||
|
assert wasm_fib.call_argv("24") == 46368
|
||||||
|
|
||||||
|
def fib(n):
|
||||||
|
if n < 2:
|
||||||
|
return n
|
||||||
|
return fib(n-1) + fib(n-2)
|
||||||
|
|
||||||
|
def run_py():
|
||||||
|
assert fib(24) == 46368
|
||||||
|
|
||||||
|
print("Wasm3: ", timeit.timeit(run_wasm, number=1000))
|
||||||
|
time.sleep(15)
|
||||||
|
print("Python: ", timeit.timeit(run_py, number=1000))
|
Loading…
Reference in new issue