クラスの定義は次のとおりです。
コードをコピー コードは次のとおりです。
class test
{
public static function a (){}
public function b(){}
}
$obj = new test;
コピーコード コードは次のとおりです:
$obj = 新しいテスト;
$times = 10000; array();
$effi2 = array();
while ($test_times--> 0)
{
$time1 = microtime(true); $i=0; $i{
test::a();
$time2 =
for($i) =0; $i{
$obj->a();
$time3 =
for($i) =0; $i{
$obj->b();
$time4 = マイクロタイム(true); = ($time3 - $time2) / ($time2 - $time1);
$effi2[] = ($time4 - $time3) / ($time3 - $time2);
エコー平均($effi1),"n", avg($effi2);
最後の avg は平均を計算するカスタム関数です:
コードをコピー
コードは次のとおりです。
$result = 0; foreach ($arr as $val) { $result = $val; }
$result /= count($arr)return $result;
プログラムの出力結果:
コードをコピー
コードは次のとおりです:
ソースプリントを表示?1 PHP 5.3 ソースプリントを表示?1 0.56919482299058
1.1016495598611 繰り返し実行 N (N>10)結果はあまり多くありませんこれとは異なります。説明:
2.インスタンスを介して静的メソッドにアクセスする効率は、非静的メンバー メソッドにアクセスする効率の 106% ですが、バージョン 5.3 では 110% になります
3. PHP を 5.2 から 5.2 にアップグレードしても、クラス名を介して静的メソッドにアクセスする効率は低下しないと仮定します。 5.3 では、インスタンスを介して関数にアクセスする効率が少なくとも 35% 向上しました。私は PHP のソース コードを見たことがありません。PHP のソース コードを研究したことのある友人は、この仮定が正しいかどうか教えてほしいと思っています (私はそれが正しいはずだと思います)
注: 上記のテストは Windows 7 と PHP に基づいています。 exe、5.2.14を使用します。 apache2.2のテスト結果に違いはありません。php.exeとWebアクセスを通じて実行されるPHPコアが同じであることを考慮すると、5.3ではサーバー構成を変更するのが面倒すぎます。同じはずです。