The Benchmark currently performs the following four tasks:
- Generate 500,000 random gene sequences with a length of 100 letters
- Transcribes the DNA to the resulting proteins and calculates the ratio of polar to nonpolar and basic to acidic proteins
- Separately sort the two resulting list of ratios by their values
- Calculates Q1, Median, Q3 and calculate average and standard deviation for those lists
The Benchmark was implemented in the following languages/platforms:
- C → clang 6.0.1
- C.Wasm → emcc 1.38.6
- JavaScript → TypeScript 3.0.3
- DotNet.Console → .NET Core 2.1.300
- DotNet.Interpreter → Mono 5.14.0
- DotNet.Wasm → mono-wasm commit c211324 ($WASM_SDK variable needs to be set)
The .NET Projects where build with Release
configuration and the C Projects with -O3
optimizations.
The following results were recorded on a MacBook Pro (Retina, 15-inch, Late 2013) and where applicable Firefox 62.0 was used as the browser.
Benchmark | C | C.Wasm | JavaScript | Dotnet.Console | Dotnet.Wasm | Dotnet.Interp |
---|---|---|---|---|---|---|
Generate | 524.59 | 675.80 | 2,618.96 | 1,255.88 | 27,111.15 | 10,499.93 |
Sequence | 312.56 | 429.70 | 600.79 | 371.23 | 6,872.21 | 2,164.94 |
Sort | 85.04 | 165.50 | 332.05 | 170.22 | 5,496.91 | 2,012.57 |
Calculate | 3.49 | 4.40 | 12.14 | 6.74 | 386.21 | 129.05 |
925.69 | 1,275.40 | 3,563.94 | 1,804.08 | 39,866.47 | 14,806.49 |