[PHP-users 16823] Re: APC Version 2.0 Released.
Youichi Iwakiri
yiwakiri @ st.rim.or.jp
2003年 7月 18日 (金) 14:04:44 JST
いわきりです
Seiji Masugata wrote in <200307180408.h6I48mbE003130 @ azusa.digicom.dnp.co.jp> :
>INSTALLで気になったのが、
>> 今の所、前述INSTALLを読むしかないかも
>apc.optimization The optimization level. Zero disables the
> optimizer, and higher values use more aggressive
> optimizations. Expect very modest speed
> improvements. Note: not implemented yet!!
> (Default: 0)
>
>で、「Note: not implemented yet!!」とあります。
>
>これって現状は、0以外の数値は指定できないと考えてよいので
>しょうか?
段階的な指定が出来ないだけで0意外にするとoptimizerは機能します。
2.0beta のINSTALL(Sun Feb 16 08:15:16 2003)と
最新のINSTALL(Sun Jun 29 11:51:07 2003)を比較すると
apc.optimizationに関する記述が変わって無いですね。
[PHP-users 16702]に書いたような最適化をするはずなんですが
分岐の最適化はまだ機能していないように思えます。
POST_INCをPRE_INCに変更する部分は機能してました。
apc.optimization = 0だと
for ( $i=0; $i<100000; $i++ ) {
"$str<br>" ;
}
/*
L4: ZEND_FETCH_W $i
ZEND_ASSIGN 0
L5: ZEND_FETCH_R $i
ZEND_IS_SMALLER 100000
ZEND_JMPZNZ L6, L8
L6: ZEND_INIT_STRING
ZEND_FETCH_R $str
ZEND_ADD_VAR
ZEND_ADD_STRING "<"
ZEND_ADD_STRING "br"
ZEND_ADD_STRING ">"
ZEND_FREE
ZEND JMP L7
L7: ZEND_FETCH_RW $i
ZEND_POSTINC
ZEND_FREE
ZEND_JMP L5
/*
/*
L8: ZEND_RETURN
apc.optimization = 1だと
for ( $i=0; $i<100000; $i++ ) {
"$str<br>" ;
}
/*
L4: ZEND_FETCH_W $i
ZEND_ASSIGN 0
L5: ZEND_FETCH_R $i
ZEND_IS_SMALLER 100000
ZEND_JMPZNZ L6, L8
L6: ZEND_INIT_STRING
ZEND_FETCH_R $str
ZEND_ADD_VAR
ZEND_ADD_STRING "<br>"
ZEND_FREE
ZEND JMP L7
L7: ZEND_FETCH_RW $i
ZEND_PREINC
ZEND_JMP L5
/*
/*
L8: ZEND_RETURN
何処まで最適化しているのかは未検証です。
--
Youichi Iwakiri
PHP-users メーリングリストの案内