mirror of
https://github.com/unisonweb/unison.git
synced 2024-09-21 07:17:25 +03:00
Add a stm counting and array sorting benchmark
This commit is contained in:
parent
d3b1cf583a
commit
8e431858aa
@ -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
|
||||
|
10
unison-src/transcripts-manual/benchmarks/array-sort.u
Normal file
10
unison-src/transcripts-manual/benchmarks/array-sort.u
Normal 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)
|
@ -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
|
13
unison-src/transcripts-manual/benchmarks/stm.u
Normal file
13
unison-src/transcripts-manual/benchmarks/stm.u
Normal 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)
|
Loading…
Reference in New Issue
Block a user