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

Reply via email to