You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I notice a missing optimization: try foo(); finally; end is not optimized to foo(). For example, look at @code_native foo(3) for foo(x) = try; return x+1; finally; end — there is a whole bunch of overhead (_ijl_excstack_state, _ijl_enter_handler, _sigsetjmp, …) compared to x+1.
I noticed this because (related to #55754) I was looking at print(io, x) performance on IOBuffers. The fallback for print(io, x) is defined as:
but the default lock(io) and unlock(io) methods do nothing. So, on an IOBuffer at least, this whole function should be optimized to just (show(io, x); nothing), but it isn't.
The text was updated successfully, but these errors were encountered:
I notice a missing optimization:
try foo(); finally; end
is not optimized tofoo()
. For example, look at@code_native foo(3)
forfoo(x) = try; return x+1; finally; end
— there is a whole bunch of overhead (_ijl_excstack_state
,_ijl_enter_handler
,_sigsetjmp
, …) compared tox+1
.I noticed this because (related to #55754) I was looking at
print(io, x)
performance onIOBuffer
s. The fallback forprint(io, x)
is defined as:but the default
lock(io)
andunlock(io)
methods donothing
. So, on anIOBuffer
at least, this whole function should be optimized to just(show(io, x); nothing)
, but it isn't.The text was updated successfully, but these errors were encountered: