Julia の複数のディスパッチと型としての値のアプローチについては、まだ学習中です。Val{c}() のインスタンス化は、辞書検索よりも約 50 倍遅いようです。その後、ディスパッチは辞書検索よりも 6 倍速いようです。
これらの期間は予想されますか? Val{c}() のインスタンス化を高速化することは可能ですか?
using BenchmarkTools
rand_n = rand([4,11], 1_000_000)
simple_dict = Dict(4 => 11, 11 => 4)
call_dict(num) = simple_dict[num]
@benchmark call_dict.($rand_n) # 42.113ms
val_type(::Val{4}) = 11
val_type(::Val{11}) = 4
@benchmark Val.($rand_n) # 2.4s
partial_result = Val.(rand_n)
@benchmark val_type.($partial_result) # 7ms