Closed bennn closed 7 years ago
also explain slowSHA's untyped config.
EDIT: the histogram for slowSHA
has a typo, it had listed 2 configurations with 0 types.
I just went through the other data & checked their "bucketing" was all right. It was. Just slowSHA was the problem.
Spent a little time on this. Probably too much, but still I don't have great answers.
futen
: maybe due to tuple types ... adding a tuple annotation speeds up the config
call_method
: definitely because of replacing Dyn
with an object type
Espionage
: adds a String
type, which replaces one check with a check_type_string
. The old check (slow check?) opens a try/except block and checks whether the given value has the split
attribute.
http2
: not sure ... maybe the same issue as Espionage
where adding a type annotation leads to a cheaper check. When I looked at this earlier today, it seemed like the "faster" config would have MORE runtime checks and retic -p
confirmed, but type-checking the whole program is different from retic -p
on individual files.
Here's my reference for "what configs got faster with types"? The file is a:
(I mean it's a simple data format just long to explain)
Such configurations exist in
futen
http2
call*
spectralnorm
Espionage
(maybe nothing)