이 기사의 예에서는 ltrace 도구를 사용하여 PHP 라이브러리 함수 호출을 추적하는 방법을 설명합니다. 참고용으로 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
아마도 여러분은 이미 strace를 사용하여 시스템 호출을 추적하는 데 익숙할 것입니다. 오늘은 라이브러리 기능 추적 도구인 ltrace를 소개하겠습니다.
예를 들어, 다음 PHP 코드가 있습니다.
test.php:
<?php $y = '1380'; $arr = array(); for($i = 0; $i < 2000; $i ++){ $arr[] = "{$i}"; //故意用引号包起来设成字符串 } for($i = 0; $i < 2000; $i ++){ if(!in_array($y, $arr)) continue; } ?>
ltrace -c /usr/local/php/bin /php test.php (-c는 요약을 의미함)
다음과 같은 출력을 볼 수 있습니다:
% time seconds usecs/call calls function ------ ----------- ----------- --------- -------------------- 95.02 7.417240 368 20146 strtol 2.15 7.160390 413 17316 memcpy 1.63 5.522641 240 22966 free 0.67 2.275374 2275374 1 curl_global_cleanup 0.54 2.235466 617 3618 __ctype_tolower_loc 0.16 2.123547 1194 1778 strrchr 0.17 1.532224 67 22836 malloc 0.29 0.382083 67 5678 strlen
strtol이 거의 소비하는 것을 볼 수 있습니다 실행 시간의 95.02%, 병목 현상이 발견되었습니다. 그리고 PHP는 in_array() 테스트 중에 문자열 번호를 long으로 변환하려고 시도하는데 시간이 많이 걸립니다. 따라서 모든 문자열을 정수로 변환하면 효율성이 크게 향상될 수 있습니다.
ltrace는 정말 좋은 도구입니다
이 기사가 PHP 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.
위 내용은 추적 내용을 포함하여 PHP 라이브러리 함수 호출을 추적하기 위해 ltrace 도구를 사용하는 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.