Add a stm counting and array sorting benchmark

This commit is contained in:
Dan Doel 2022-12-06 11:39:14 -05:00
parent d3b1cf583a
commit 8e431858aa
4 changed files with 46 additions and 10 deletions

View File

@ -1,5 +1,6 @@
```ucm:hide
.> pull unison.public.base.releases.M4d base
.> pull runarorama.public.sort.data sort
```
```unison:hide
@ -79,9 +80,19 @@ prepare = do
.> run main
```
```ucm
.> load unison-src/transcripts-manual/benchmarks/stm.u
.> run main
```
```ucm
.> load unison-src/transcripts-manual/benchmarks/tmap.u
.> run main
```
-- something with arrays
```ucm
.> load unison-src/transcripts-manual/benchmarks/array-sort.u
.> run main
```
-- something with arrays

View File

@ -0,0 +1,10 @@
use Nat mod
shuffle : Nat -> Nat
shuffle n =
mod (n*n) 31397
main = do
list = map shuffle <| range 1000 3000
timeit "array_sort" '(sortBy (Nat.<=) list)

View File

@ -1,10 +1,12 @@
Each 2637530 # 2.63753s
List.map 810666 # 810.666ms
List.filter 933348 # 933.348ms
random 2346016 # 2.346016s
simple_loop 2702385 # 2.702385s
fibonacci 1264884 # 1.264884s
Map 1145854 # 1.145854s
NatMap 1380953 # 1.380953s
TMap 1551932 # 1.551932s
Each 127733 # 127.733ms
List.map 41872 # 41.872ms
List.filter 42141 # 42.141ms
random 104488 # 104.488ms
simple_loop 137892 # 137.892ms
fibonacci 56395 # 56.395ms
Map 59256 # 59.256ms
NatMap 59834 # 59.834ms
stm_loop 302685 # 302.685ms
TMap 98860 # 98.86ms
array_sort 158127 # 158.127ms

View File

@ -0,0 +1,13 @@
use TVar read write
-- sum the numbers 1 to a million
loop var = cases
0 -> readIO var
n ->
atomically do
write var (read var + n)
loop var (n - 1)
main = do
timeit "stm_loop" '(loop (TVar.newIO 0) 100000)