On Tue, May 17, 2016 at 9:10 PM, Jesse Schalken <m...@jesseschalken.com> wrote: > On Wed, May 18, 2016 at 1:06 PM, Sara Golemon <poll...@php.net> 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 > class/interface? > 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... complex.
> 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. -Sara -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php