Skip to content

Latest commit

 

History

History
67 lines (48 loc) · 2.12 KB

README.md

File metadata and controls

67 lines (48 loc) · 2.12 KB

as-explore

AssemblyScript exploratory projects

Directories

Project Description
as-fib Implementation of a fibonacci algorithm using AssemblyScript
wat-fib Same as as-fib but hand coded wat - see CODING FIBONACCI IN WEBASSEMBLY BY HAND
as-types Shows unboxing record types for enum and class

Execute tests

At the repo root run these commands to execute the tests.

Note as-explore is a monorepo that relies on pnpm.

$ pnpm install
$ pnpm build
$ pnpm test

as-fib benchmarks

There are 2 sets of benchmark suites available in as-fib/benchmarks/index.js.

They compare the execution characteristics of running the AssemblyScript-based wasm implementations (from as-fib/assembly/index.ts) and the exact same code written in JavaScript from as-fib/assembly/index.js.

Suite Operation
fibonacciSuites Runs fib(N) using the looping fibonacci implementations
fibRecurseSuites Runs fib(N) using the recursive fibonacci implementations

Each set of suites run fib(3) and fib(25) for relative comparison.

Sample Benchmark Result


$ pnpm benchmark

> [email protected] benchmark <snip>/as-explore
> pnpm --filter as-fib benchmark


> [email protected] benchmark <snip>/as-explore/packages/as-fib
> node benchmarks

Running fibonacci_3
        AssemblyScript x 138,459,877 ops/sec ±1.32% (96 runs sampled)
        JavaScript x 189,202,922 ops/sec ±0.25% (93 runs sampled)
JavaScript won.

Running fibonacci_25
        AssemblyScript x 74,344,527 ops/sec ±0.77% (95 runs sampled)
        JavaScript x 44,296,659 ops/sec ±0.35% (95 runs sampled)
AssemblyScript won.

Running fibRecurse_3
        AssemblyScript x 58,730,650 ops/sec ±0.41% (94 runs sampled)
        JavaScript x 47,499,009 ops/sec ±0.33% (94 runs sampled)
AssemblyScript won.

Running fibRecurse_25
        AssemblyScript x 1,683 ops/sec ±0.43% (98 runs sampled)
        JavaScript x 927 ops/sec ±0.33% (95 runs sampled)
AssemblyScript won.