Skip to content

Instantly share code, notes, and snippets.

@joakin
Created July 15, 2019 08:38
Show Gist options
  • Save joakin/17ce7f8175b2cdefea8051592cff34f9 to your computer and use it in GitHub Desktop.
Save joakin/17ce7f8175b2cdefea8051592cff34f9 to your computer and use it in GitHub Desktop.
Elm associative data structures benchmark
updateRecord =
benchmark "Update record with native syntax"
(\_ ->
let
surname =
emptyRecord.surname
in
{ emptyRecord | surname = surname ++ "wat" }
)
updateRecordFullObject =
benchmark "Update record with full object syntax"
(\_ ->
let
surname =
emptyRecord.surname
in
{ name = emptyRecord.name, surname = surname ++ "wat" }
)
updateDict =
benchmark "Update dict insert"
(\_ ->
let
surname =
Dict.get "surname" dict
in
Maybe.map (\s -> Dict.insert "surname" (s ++ "wat") dict) surname
)
emptyRecord =
{ f0 = ""
, f1 = ""
, f2 = ""
, f3 = ""
, f4 = ""
, f5 = ""
, f6 = ""
, f7 = ""
, f8 = ""
, f9 = ""
, f10 = ""
, f11 = ""
, f12 = ""
, f13 = ""
, f14 = ""
, f15 = ""
, name = "Banana"
, surname = "Phone"
}
dict =
Dict.empty
|> Dict.insert "f0" ""
|> Dict.insert "f1" ""
|> Dict.insert "f2" ""
|> Dict.insert "f3" ""
|> Dict.insert "f4" ""
|> Dict.insert "f5" ""
|> Dict.insert "f6" ""
|> Dict.insert "f7" ""
|> Dict.insert "f8" ""
|> Dict.insert "f9" ""
|> Dict.insert "f10" ""
|> Dict.insert "f11" ""
|> Dict.insert "f12" ""
|> Dict.insert "f13" ""
|> Dict.insert "f14" ""
|> Dict.insert "f15" ""
|> Dict.insert "name" "Banana"
|> Dict.insert "surname" "Phone"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment