Re: Feature Request: inline pseudo-instruction
| From: | Bob Weinand | Date: | Tue, 04 Oct 2016 15:39:04 +0000 |
| Subject: | Re: Feature Request: inline pseudo-instruction | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-96229@lists.php.net to get a copy of this message | ||
> Am 4.10.2016 um 16:33 schrieb Pascal KISSIAN <php-mailing-list@lool.fr>:
>
>> -----Message d'origine-----
>> De : Lauri Kenttä [mailto:lauri.kentta@gmail.com]
>> Envoyé : mardi 4 octobre 2016 16:21
>> À : Pascal KISSIAN <php-mailing-list@lool.fr>
>> Cc : internals@lists.php.net
>> Objet : Re: [PHP-DEV] Feature Request: inline pseudo-instruction
>>
>> On 2016-10-04 14:33, Pascal KISSIAN wrote:
>>> I have an application where a small file is included at multiple
>>> places.
>>>
>>> The include is done about an average of 100.000 times .
>>
>> I'm just wondering if you have ever heard of functions? You really should write a
>> function, include it only once, and then simply call the function instead of repeatedly
>> >including the file. Calling a function is a lot faster than including a file.
>>
>> --
>> Lauri Kenttä
>
> Function is not appropriate when the "inlined code" has to share 20-30 local
> variables ...
> Having a function with 30 args, or having to build and access an array is not very efficient
> nor natural...
> Local variables include 6 nested "for loop" indices and local variables/arrays needed
> for the computing.
Hey,
why do you think are your includes so slow?
Apart from the include itself (which in itself is fairly slow due to filesystem access; or in case
with opcache, at the very least copying the op_array etc.), it does exactly this: building an array
and importing it into the included files scope.
Also, 20-30 local variables? That sounds a bit like your code has way too many responsibilities in
one same place. Perhaps you should restructure your code instead, but the way you describe it, no.
If your code is so "hot", that also even function calls would be quite significant then
you should probably really inline your code there as a perf optimization. Anyway, code with that
many variables almost always can meaningfully refactored.
It is not the languages task to optimize insane code ...
Bob