2013-06-20 10 views

Odpowiedz

0

Upewnij się, że dodałeś linie xdebug do cli php.ini, a nie tylko apache php.ini. W systemie Ubuntu w /etc/php5/cli/php.ini. Należy dodać te linie do pliku: zend_extension =/usr/lib/php5/20100525 + LFS/xdebug.so xdebug.profiler_enable = 1 xdebug.profiler_output_dir =/ścieżka/do/output_dir xdebug.profiler_output_name = cachegrind.out% R.% t

EDIT:. Ups, masz rację, miałem na myśli używając cachegrind. Linie do dodania będą poniżej, ale mój główny punkt jest taki sam. Upewnij się, że rzucisz okiem na cli php.ini.

[xhprof] 
extension=xhprof.so 
xhprof.output_dir="/var/tmp/xhprof" 
+1

pytanie było o xhprof, to xdebug –

10

Aby dowiedzieć się który testy są działa wolno, można użyć

zainstalować odbiornik poprzez Composer a następnie włączyć go w phpunit.xml, np

<phpunit bootstrap="vendor/autoload.php"> 
... 
    <listeners> 
     <listener class="JohnKary\PHPUnit\Listener\SpeedTrapListener" /> 
    </listeners> 
</phpunit> 

Aby dowiedzieć się, dlaczegoTesty działa wolno, można użyć

Można go skonfigurować w phpunit.xml, np

<listeners> 
    <listener class="PHPUnit_Util_Log_XHProf" file="PHPUnit/Util/Log/XHProf.php"> 
    <arguments> 
    <array> 
    <element key="xhprofLibFile"> 
     <string>/var/www/xhprof_lib/utils/xhprof_lib.php</string> 
    </element> 
    <element key="xhprofRunsFile"> 
     <string>/var/www/xhprof_lib/utils/xhprof_runs.php</string> 
    </element> 
    <element key="xhprofWeb"> 
     <string>http://localhost/xhprof_html/index.php</string> 
    </element> 
    <element key="appNamespace"> 
     <string>Doctrine2</string> 
    </element> 
    <element key="xhprofFlags"> 
     <string>XHPROF_FLAGS_CPU,XHPROF_FLAGS_MEMORY</string> 
    </element> 
    <element key="xhprofIgnore"> 
     <string>call_user_func,call_user_func_array</string> 
    </element> 
    </array> 
    </arguments> 
    </listener> 
</listeners> 
+0

gdzie jesteś coraz XHProf.php plik? A co z plikiem wewnątrz katalogu xhprof_lib? –

+0

[XHProf.php] (https://github.com/phpunit/phpunit-testlistener-xhprof). [xhprof_lib.php i przyjaciele] (https://github.com/phacility/xhprof). – bishop

3

Uzupełnianie odpowiedzi @ Gordona na temat xhprof.

Istnieją dwie części:

  1. PECL extension
  2. user-space viewer

rozszerzenia PECL dodaje metody na silniku PHP do zbierania danych. Musisz zainstalować to rozszerzenie.

Przeglądarka przestrzeni użytkownika udostępnia interfejs sieciowy do zrozumienia wyników gromadzenia danych. Nie musisz trzeba tego, ale naprawdę chcesz chcesz go. Chyba że lubisz patrzeć na surowe dane metryczne.Aby zainstalować i skonfigurować przeglądarkę przestrzeni użytkownika tak, że PHPUnit może profil swoich badań:

(1) Dodaj te pakiety do listy composer.json:

composer require "facebook/xhprof:[email protected]" --dev 
composer require "phpunit/test-listener-xhprof:1.0.*@dev" --dev 

(2) Konfiguracja serwera WWW służyć sprzedawca/facebook/xhprof/xhprof_html/katalog. Zapamiętaj adres URL.

(3) Dostosuj swoją istniejącą konfigurację PHPUnit do phpunit-xhprof.xml, która jest podobna do tej. Upewnij się zmienić "appNamespace", aby dopasować swój kod i zmiany "xhprofWeb" do adresu URL z kroku 2:

<phpunit> 
    <testsuites> 
    <testsuite name="All Tests"> 
     <directory suffix="Test.php">tests/</directory> 
    </testsuite> 
    </testsuites> 
    <listeners> 
    <listener class="PHPUnit\XHProfTestListener\XHProfTestListener" file="vendor/phpunit/test-listener-xhprof/src/XHProfTestListener.php"> 
    <arguments> 
     <array> 
     <element key="appNamespace"> 
     <string>App</string> 
     </element> 
     <element key="xhprofWeb"> 
     <string>http://localhost/vendor/facebook/xhprof/xhprof_html/index.php</string> 
     </element> 
     <element key="xhprofLibFile"> 
     <string>./vendor/facebook/xhprof/xhprof_lib/utils/xhprof_lib.php</string> 
     </element> 
     <element key="xhprofRunsFile"> 
     <string>./vendor/facebook/xhprof/xhprof_lib/utils/xhprof_runs.php</string> 
     </element> 
     <element key="xhprofFlags"> 
     <string>XHPROF_FLAGS_CPU,XHPROF_FLAGS_MEMORY</string> 
     </element> 
     <element key="xhprofIgnore"> 
     <string>call_user_func,call_user_func_array</string> 
     </element> 
     </array> 
    </arguments> 
    </listener> 
    </listeners> 
</phpunit> 

(4) Run PHP i zbierać statystyki: phpunit -c ./phpunit-xhprof.xml

Zobaczysz wyjścia podobny do następującego:

* BishopB\Pattern\Exception\InvalidArgumentTest::test_hierarchy 
    http://localhost/vendor/facebook/xhprof/xhprof_html/index.php?run=556e05cec844c&source=BishopB\Pattern 

To jest adres URL skonfigurowany do wyświetlania wyniku przebiegu. Jeśli chcesz, aby surowe dane metryki znaleźć ten klucz run („556e05cec844c”, w tym przykładzie) w tymczasowym katalogu:

$ ls -l /tmp/556e05cec844c.BishopB\\Pattern.xhprof 
-rw-rw-r-- 1 bishop staff 16963 Jun 2 15:36 /tmp/556e05cec844c.BishopB\Pattern.xhprof 
Powiązane problemy