DTrace β Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² ΡΠ΄ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ². Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² Solaris, macOS, Oracle Linux, BSD ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ . DTrace ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π·ΠΎΠ½Π΄ΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ DTrace D. ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠΎΠ½Π΄Ρ PHP, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ DTrace D, Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ Π΄Π΅Π³ΡΠ°Π΄ΠΈΡΡΠ΅Ρ. ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π·ΠΎΠ½Π΄Ρ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΄Π°ΡΡ ΠΎΡΠ΅Π½Ρ Π½ΠΈΠ·ΠΊΡΡ ΠΏΡΠΎΡΠ°Π΄ΠΊΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π² ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΡ ΡΡΠ΅Π΄Π°Ρ .
PHP Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π·ΠΎΠ½Π΄Ρ Β«Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ
ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΒ» (User-level Statically
Defined Tracing, ΠΈΠ»ΠΈ USDT), ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ
ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° D-ΡΠΊΡΠΈΠΏΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ Π·ΠΎΠ½Π΄
function-entry, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅
ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΎΡ Π·ΠΎΠ½Π΄ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ D-ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ
ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ
Π·ΠΎΠ½Π΄Π° Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² PHP-ΡΠΊΡΠΈΠΏΡΠ΅.
ΠΠ»ΠΈ ΠΆΠ΅ Π°Π³ΡΠ΅Π³ΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅
ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π°ΠΏΡΡΠΊΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ΄Π΅ΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·ΠΎΠ½Π΄Ρ PHP USDT. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π°ΡΡ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ°, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π°Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈ Π²Π½Π΅ΡΠ½ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ DTrace. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ DTrace ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·ΠΎΠ½Π΄Ρ DTrace Π² PHP ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ SystemTap Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ ΠΠ‘ Linux.