Skip to content

Commit

Permalink
sparse
Browse files Browse the repository at this point in the history
  • Loading branch information
GregoryTravis committed Nov 4, 2024
2 parents 90fe26b + afead1a commit 78d19ab
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions test/Benchmarks/src/Map/Hash_Map.enso
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,16 @@ polyglot java import org.enso.benchmark_helpers.JavaHashMapWrapper
options = Bench.options . set_warmup (Bench.phase_conf 2 2) . set_measure (Bench.phase_conf 2 3)

type Data
Value ~ints
Value ~dense_ints ~sparse_ints

create n =
create_ints =
create_dense_ints =
Vector.new n _->
Random.integer 0 ((n.div 100) - 1)
Data.Value create_ints
create_sparse_ints =
Vector.new n _->
Random.integer 0 (n - 1)
Data.Value create_dense_ints create_sparse_ints

type Scenario
Instance map_constructor
Expand Down Expand Up @@ -43,15 +46,23 @@ collect_benches = Bench.build builder->

builder.group ("Enso_Hash_Map_" + n.to_text) options group_builder->
# Scenario similar to what is done in distinct
# 'Sparse' ints have fewer duplicates and cause more inserts to happen.
group_builder.specify "Enso_Sparse_Incremental" <|
Scenario.Instance (_ -> Dictionary.empty) . run_distinct data.sparse_ints
group_builder.specify "Java_Sparse_Incremental" <|
Scenario.Instance (_ -> JavaHashMapWrapper.new) . run_distinct data.sparse_ints

# Scenario similar to what is done in distinct
# 'Dense' ints have more duplicates and cause fewer inserts to happen.
group_builder.specify "Enso_Incremental" <|
Scenario.Instance (_ -> Dictionary.empty) . run_distinct data.ints
Scenario.Instance (_ -> Dictionary.empty) . run_distinct data.dense_ints
group_builder.specify "Java_Incremental" <|
Scenario.Instance (_ -> JavaHashMapWrapper.new) . run_distinct data.ints
Scenario.Instance (_ -> JavaHashMapWrapper.new) . run_distinct data.dense_ints

# A scenario similar to what is done in add_row_number with grouping
group_builder.specify "Enso_Replacement" <|
Scenario.Instance (_ -> Dictionary.empty) . run_count_keys data.ints
Scenario.Instance (_ -> Dictionary.empty) . run_count_keys data.dense_ints
group_builder.specify "Java_Replacement" <|
Scenario.Instance (_ -> JavaHashMapWrapper.new) . run_count_keys data.ints
Scenario.Instance (_ -> JavaHashMapWrapper.new) . run_count_keys data.dense_ints

main = collect_benches . run_main

0 comments on commit 78d19ab

Please sign in to comment.