Hello Rasmus,

Thursday, August 14, 2008, 7:36:29 AM, you wrote:

> Larry Garfield wrote:
>> I would also note that "include up front and have a good autoload scheme"
>> works great if you are writing all classes.  If you're trying to use
>> namespaces and functions, there is no autoload.  That makes the autoload
>> argument moot, and pre-loading everything up front can get ridiculously
>> expensive in large systems, and even then you don't always know what to load
>> up front.  (Think anything that accepts plugins.)  So an answer of "well if
>> it throws a warning when you do that, don't do that" is simply not realistic
>> in practice.

> With an opcode cache, it is actually often more efficient to load 
> everything up front even if you aren't using it all on any given 
> request.  By using autoload or other conditional mechanisms you lose the 
> function and class caching mechanism provided by the opcode cache 
> because you have now pushed the creation of these to the executor 
> instead of letting the opcode cache cache them for you.

> And assuming your include_path setting and your include hierachy is 
> clean so you don't have any or at least only minimal per-include stat 
> overhead, whether you include 1 or 20 files on a request isn't a big 
> deal since they are all going to be in memory anyway.

See, this is something I fail to understant/accept. With all the crappy
delayed inheritance and whatnot dynamic feature of the language it only
seems fair that we develop apc in a way that it checks whether a class
always gets created from the same file. Or at least we should provide a
flag where apc would evaluate __autoload calls only once and then caches
the results. If someone wants to screw up, it is their fault, erm their
tradeoff, they'd simply get a much slower execution time as they wouldn't
be able to use that optimization.


Best regards,
 Marcus


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to