[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 メーリングリストの案内