[see below] On Wed, Nov 21, 2012 at 6:39 AM, Laruence <larue...@php.net> wrote:
> Hey: > > This problem come out when I was figuring a performance issue of > Yaf_Loader. > > Yaf provides a autoloader like PSR0, when doing a classes > autoloading. it used to: > > 1. stat the file, if file does not exists, return > 2. zend_compile_file > > this is okey when you run yaf without opcode cache. > > but when you run yaf with opcode cache, the first stat syscall > become a little waste. > You should just use virtual_realpath() or tsrm_realpath() instead of stat(). They must utilise realpath cache and avoid stat() calls. Thanks. Dmitry. > since opcode cache always hook the zend_compile_file, and compile > the file from cache. > > so, I changed the autoload to: > > 1. zend_compile_file > 2. if compile failed, then return. > > but, zend_compile_file will throw warning if the file doesn't > exists via zend_message_dispatcher_p > > so if zend_message_dispatcher_p is ZEND_API, then I can avoid using > such mess codes: > https://github.com/laruence/php-yaf/blob/master/yaf_loader.c#L377 > > what do you think? > > > thanks > -- > Laruence Xinchen Hui > http://www.laruence.com/ >