Uzupełnianie odpowiedzi @ Gordona na temat xhprof.
Istnieją dwie części:
- PECL extension
- 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
pytanie było o xhprof, to xdebug –