I'm glad somebody is working on a patch for this performance problem.

I will test it !

Thanks.

Jean-François Bustarret
eTF1 - Architect

> -----Message d'origine-----
> De : Masaki Fujimoto [mailto:[EMAIL PROTECTED]
> Envoyé : jeudi 6 mai 2004 15:36
> À : [EMAIL PROTECTED]
> Objet : [PHP-DEV] [PATCH] suppressing realpath() with APC +
> tiny patches
>
>
> Hello,
>
> These days I've been working on some tasks to reduce I/O system calls
> (lstat64, stat64, open and so on) of PHP for some reasons and
> as the result of it, I noticed that with the APC + very small two
> pathes we can suppress most of realpath() calls (although currently
> I'm not sure this is the correct method or not...):
>
> http://eth.jp/php-cvs-20040506-delayed-fopen.patch.txt
> (patch against current 4.3 tree, because APC is not yet fully
> compatible with PHP 5)
> http://eth.jp/apc-2.0.3-delayed-fopen.patch.txt
> (patch against APC-2.0.3, current CVS-HEAD is somehow unstable...)
>
> So please try and review if you're curious about suppressing
> realpath() calls:)
>
>
> Usage:
> 1) apply patches to current 4.3 tree, and APC-2.0.3
> 2) buidconf and configure PHP as always with --enable-delayed-fopen
>    option
> 3) build and install PHP and APC as always
> 4) add "delayed_fopen=1" entry to your php.ini
>
>
> And details are as follows:
>
> As the recent thread and some other threads show (which
> listed below),
> PHP requires quite a few I/O system calls especially when
> large number
> of scripts are include_once()ed. And these are not ignorable
> for the websites with more than 1 million hits per hour although it
> has nothing to do with small sites.
>
> [Performance Consideration of 1 class per file]
> http://marc.theaimsgroup.com/?l=php-dev&m=108279256414391&w=2
>
> [Performance degradation]
> http://www.phpbuilder.com/lists/php-developer-list/2003022/0226.php
>
> The main concern here is the lstat64() by realpath(), and open() by
> searching for include_paths (when many include_paths are set).
>
> I think suppressing open() (which will result in ENOENT) is not so
> easy (because we need some other new caching system for
> include_paths), but perhaps we can easily reduce realpath() for
> included scritpts with APC, because APC does not use an opned file
> handle when cache hits.
>
> So, my patch skips zend_open() until open_file_scanning() is called
> inside zend_compile_file() when include_once() or require_once() is
> called, so that zend_open() is not called when the target script is
> cached in APC. As a result of this, we can reduce most of realpath()
> calls by include_once() and required_once().
>
>
> These patches are not yet verified well so comments are welcome!
>
> Best regards,
> Masaki Fujimoto
> [EMAIL PROTECTED]
>

-------------------------------------
Le present message (y compris tous les elements attaches) est confidentiel et est 
destine a ses seuls destinataires. Si vous
l'avez recu par erreur, merci de l'indiquer a son expediteur par retour et de proceder 
a sa destruction dans vos systemes.
Toute utilisation ou diffusion non autorisee de son contenu, en totalite ou en partie, 
est strictement interdite. Les idees et
opinions presentees dans ce message sont celles de son auteur, et ne representent pas 
necessairement celles de TF1 (et/ou des
entites membres du Groupe TF1).

This message (including any attachments) is confidential and may be privileged. If you 
have received it by mistake please notify
the sender by return email and delete this message from your system. Any unauthorised 
use or dissemination of this message in
whole or in part is strictly prohibited. Any views or opinions presented are solely 
those of its author and do not necessarily
represent those of TF1 (and/or its group companies).

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

Reply via email to