You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.8 KiB
75 lines
2.8 KiB
# Basic Libraries |
|
|
|
## 28.6 Exercise: Benchmark Practice |
|
|
|
see [src/benchSet.hs](./src/benchSet.hs) |
|
|
|
```shell |
|
benchmarking member check map |
|
time 28.57 ns (28.10 ns .. 29.11 ns) |
|
0.998 R² (0.996 R² .. 0.999 R²) |
|
mean 28.43 ns (28.09 ns .. 28.97 ns) |
|
std dev 1.357 ns (899.3 ps .. 1.950 ns) |
|
variance introduced by outliers: 70% (severely inflated) |
|
|
|
benchmarking member check set |
|
time 27.93 ns (27.55 ns .. 28.34 ns) |
|
0.998 R² (0.997 R² .. 0.999 R²) |
|
mean 27.92 ns (27.58 ns .. 28.38 ns) |
|
std dev 1.320 ns (1.010 ns .. 1.940 ns) |
|
variance introduced by outliers: 70% (severely inflated) |
|
|
|
benchmarking insert check set |
|
time 127.9 ns (127.4 ns .. 128.4 ns) |
|
1.000 R² (1.000 R² .. 1.000 R²) |
|
mean 127.1 ns (126.7 ns .. 127.6 ns) |
|
std dev 1.515 ns (1.162 ns .. 2.043 ns) |
|
variance introduced by outliers: 12% (moderately inflated) |
|
|
|
benchmarking insert check set |
|
time 112.8 ns (112.4 ns .. 113.3 ns) |
|
1.000 R² (1.000 R² .. 1.000 R²) |
|
mean 112.6 ns (112.0 ns .. 113.4 ns) |
|
std dev 2.414 ns (1.889 ns .. 3.151 ns) |
|
variance introduced by outliers: 30% (moderately inflated) |
|
|
|
benchmarking union check set |
|
time 655.5 μs (652.0 μs .. 658.8 μs) |
|
1.000 R² (0.999 R² .. 1.000 R²) |
|
mean 638.7 μs (634.2 μs .. 642.7 μs) |
|
std dev 15.07 μs (12.96 μs .. 18.02 μs) |
|
variance introduced by outliers: 14% (moderately inflated) |
|
|
|
benchmarking union check set |
|
time 428.9 μs (423.5 μs .. 433.8 μs) |
|
0.999 R² (0.999 R² .. 0.999 R²) |
|
mean 422.6 μs (419.7 μs .. 425.9 μs) |
|
std dev 10.16 μs (8.544 μs .. 12.44 μs) |
|
variance introduced by outliers: 15% (moderately inflated) |
|
``` |
|
|
|
## 28.9 Excercises: Vector |
|
|
|
see [src/benchVector.hs](./src/benchVector.hs) |
|
|
|
Using unboxed vector has better time performance. I tried measuring space, |
|
but the difference is almost negligable. |
|
|
|
## 28.10 Chaper Exercises |
|
|
|
### Difference List |
|
|
|
see [src/DiffList.hs](./src/DiffList.hs) |
|
|
|
It is not actually faster, but it has the same performance as Data.DList and |
|
the same implementation, so I guess this is to be expected? |
|
|
|
### A simple queue |
|
|
|
see [src/SimpleQueue.hs](./src/SimpleQueue.hs) |
|
|
|
Comparing Sequence and Queue seems a bit strange as they serve different |
|
purposes. I could implement a function to add something to the back of the |
|
queue (similar to |>) but that kinda defeats the purpose of queue... I compared |
|
them based on what a queue should be capable of doing and it seem the queue |
|
is better than the sequence in these cases. |