PHP ayrıştırma zamanı ölçmek için bir yolu var mı?

3 Cevap php

Zamanı kıyaslama yoluyla PHP kod optimizasyonu yalındır. Bir kod bloğu etrafında Microtime'da () üzerinden başlangıç ​​ve bitiş saatleri $ $ takip edin - I microtime () kullanımını içeren bir cevap aramıyorum.

Zaman code-parse/op-code-tree-building - Ne yapmak istiyorsunuz o kod çalıştırmak için hazır almak için PHP süreyi ölçmek olduğunu. Benim mantık bu sadece might Eğer bir sitede var her sayfa için gereken her sınıf () dahil etmek kolay iken, CPU yükü "özgür" olamaz olmasıdır. Ben ayrıştırma zaman gerçekten ne kadar "pahalı" bilmek istiyorum.

Böyle APC gibi bir opcode önbellek senaryonun not parçası olduğunu varsayıyorum.

PHP ayrıştırma zaman ölçümü mod_php yer almak zorunda bir şey olduğunu doğru olurdu?

EDIT: kod Mümkünse, dikkate alarak $ _SERVER ['DOCUMENT_ROOT'] kullanımı yararlı olacaktır. Komut çözümleri bu yapmak için müdahalesi biraz almak (ama yine de değerli yanıtlar) olabilir.

3 Cevap

Evet. Bulunmaktadır.

<?php return; rest of the code ?>

veya

<?php whole code; $%^parse erveyar!@! ?>

ve sonra boş komut dosyası çalıştırma zamanı karşılaştırmak

time php empty.php

with time it takes to run (veya fail) regular script with the additions I've mentioned above:

time php test.php

I've used this method on large files and PHP5.3 on Cveyae2Duo 2.4Ghz can parse between 1.5 and 4.5MB of PHP code per second (it depends very much on complexity of the code of course).

Eğer aradığınız analiz ayrıntılı düzeyi için, Xdebug uygulanması (http://xdebug.org/) Parçalara parçalar halinde doğrayın kodunuzu zorunda o size w / büyük bilgi verecek gibi görünüyor.

Bir yöntem, komut satırından komut dosyası yürütülmesine zamanlama olabilir.

Örneğin Linux:

$ time php5 -r 'echo "Hello world";'
Hello world
real    0m1.565s
user    0m0.036s
sys     0m0.024s

Bu yardım geliyor mu? Belki de farklı komut arasında nispi kez keşfetmek için yararlı olduğunu, ancak Apache modülü üzerinden alınan zaman göstergesi olmayabilir