package irmin-bench
Irmin benchmarking suite
Install
Dune Dependency
Authors
Maintainers
Sources
irmin-3.10.0.tbz
sha256=92a9de7a0a2a35c2feba0c35a806b1f0df24c1c0d15164eebf3f919296d26715
sha512=0203ec5117a851ad5afeb2f9091659b4e142e231b6b945caab93f4d7beb23397c8ac43f7056e91d18f4bff0be1062f6ae966d221f877c229328c0cbbf29fd9f0
doc/irmin-bench.traces/Irmin_traces/Trace_stat_summary_utils/Parallel_folders/index.html
Module Trace_stat_summary_utils.Parallel_folders
Source
See Trace_stat_summary
for an explanation and an example.
Heavily inspired by the "repr" library.
Type parameters:
'res
is the output offinalise
.'f
is the full contructor that creates a'res
.'v
is the output offolder.finalise
, one parameter of'f
.'rest
is'f
or'res
or somewhere in between.'acc
is the accumulator of one folder.'row
is what needs to be fed to allfolder.accumulate
.
Typical use case:
let pf =
open_ (fun res_a res_b -> my_constructor res_a res_b)
|+ folder my_acc_a my_accumulate_a my_finalise_a
|+ folder my_acc_b my_accumulate_b my_finalise_b
|> seal
in
let res = my_row_sequence |> Seq.fold_left accumulate pf |> finalise in
Section 1/3 - Individual folders
Create one folder to be passed to an open parallel folder using |+
.
Section 2/3 - Open parallel folder
Source
val app :
('res, 'row, 'f, 'v -> 'rest) open_t ->
('row, 'acc, 'v) folder ->
('res, 'row, 'f, 'rest) open_t
Add a folder to an open parallel folder.
Source
val (|+) :
('res, 'row, 'f, 'v -> 'rest) open_t ->
('row, 'acc, 'v) folder ->
('res, 'row, 'f, 'rest) open_t
Alias for app
.
Section 3/3 - Closed parallel folder
Stop building a parallel folder.
Gotcha: It may seal a partially applied f
.
Forward a row to all registered functional folders.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>