Closed brodieG closed 7 years ago
Seems like unfortunately a lot of the overhead is just the failing alike
call:
> microbenchmark(alike(numeric(), NULL))
Unit: microseconds
expr min lq mean median uq max neval
alike(numeric(), NULL) 27.659 28.383 30.9083 28.725 29.2745 161.006 100
So really, we need to optimize that.
After we skip the ALIKEC_pad_or_quote bit:
Unit: microseconds
expr min lq mean median uq max neval
alike(numeric(), NULL) 17.028 17.471 19.24952 17.6855 17.916 157.746 100
For reference, passing:
> microbenchmark(alike(numeric(), 1))
Unit: microseconds
expr min lq mean median uq max neval
alike(numeric(), 1) 2.128 2.222 2.63623 2.2925 2.3835 32.608 100
Completely skipping all the stuff in _wrap after !success, still getting:
> microbenchmark(alike(numeric(), NULL))
Unit: microseconds
expr min lq mean median uq max neval
alike(numeric(), NULL) 15.456 15.9885 17.11938 16.211 16.6025 76.616 100