|| at May 18, 2016 at 6:42 am
On Tue, May 17, 2016 at 9:10 PM, Jesse Schalken wrote:
On Wed, May 18, 2016 at 1:06 PM, Sara Golemon wrote:
Yes, but that doesn't mean you should micro-optimize around it. Just
write code that's easy to maintain and trust the compiler to do the
best job at making it not-slow. :)
Do you happen to know whether or not HHVM does a better job in the case of a
function being called repeatedly with different implementations of a
Yes. In the case of HHVM, different types coming into a function
generate different tracelets and each tracelet is able to burn its own
target method into the native code. I say *able*, though. There are
also translation paths which result in simply punting to a lookup at
runtime. The decision making process the compiler goes through is...
I don't optimised prematurely, but if I've got performance problems today
and getting a more sophisticated compiler/runtime isn't an option, and I
can't work around it by some other means then I don't really have a choice.
Saying for the list archive benefit as much as yours. It's only too
easy for this to show up on StackOverflow with a recommendation to
"always break oop conventions by wrapping method calls in a chain of
if (instanceof) checks to cache the right method pointer, yadda
yadda..." and the next thing you know it's php sadness all over again.