이 글에서는 주로 XHProf를 사용하여 PHP 성능 병목 현상을 분석하는 두 번째 방법을 소개합니다. 이제 필요한 친구들이 참고할 수 있도록 공유하겠습니다.
이전 글에서 사용법을 소개했습니다. xhprof는 PHP 성능 병목 현상을 분석하고, 이를 로그에 기록하고, 마지막으로 xhprof 확장과 함께 제공되는 UI를 사용하여 이를 웹에 표시하는 확장입니다. 이 기사에서는 2가지 지식 포인트에 대해 설명합니다:
xhgui를 사용하여 xhprof의 기본 UI 인터페이스를 대체하여 분석하기 더 쉽습니다.
ideways 확장을 사용하여 xhprof 확장을 대체합니다.
더 아름다운 UI를 사용합니다. xhgui
xhgui XHProf, Uprofiler 또는 Tideways 확장을 지원합니다. 즉, 이러한 확장 중 하나가 설치되어 있는 경우입니다.
이번 테스트에서는 실제로 Tideways Extension을 사용했습니다(XHProf Extension으로 전환한 후 웹에서 데이터가 보이지 않아 이유를 알 수 없습니다. Uprofiler로 전환하면 데이터가 없습니다.).
xhprof는 facebook에서 제공되지만 오랫동안 업데이트되지 않았습니다. 공식 소스에 따르면 이 패키지는 폐기되었으며 더 이상 유지 관리되지 않습니다. Tideways는 정반대입니다. 상업 회사에서는 이를 유지하고 PHP7을 적극적으로 지원해 왔습니다. 두 확장 모두 오픈 소스입니다. 요약하면 코드 분석을 위해 Tideways를 선택하는 것이 좋습니다.
tideways 확장 설치:
wget https://github.com/tideways/php-xhprof-extension/archive/v4.1.5.tar.gz -O php-xhprof-extension-4.1.5.tar.gz tar xzf /php-xhprof-extension-4.1.5.tar.gz cd php-xhprof-extension-4.1.5 phpize ./configure make && make install
xhgui 설치
cd /work/ git clone https://github.com/perftools/xhgui.git xhgui
중국어 인터페이스를 설치해야 하는 경우 다음을 수행할 수 있습니다.
git clone https://github.com/laynefyc/xhgui-branch.git xhgui
그런 다음 xhgui 종속성을 설치합니다.
cd xhgui php install.php
설치에는 몇 분이 소요됩니다. 잠시 기다려 주십시오. .
캐시 디렉토리의 권한을 설정하고 nginx가 파일을 생성하도록 허용합니다.
chmod -R 777
xhgui는 이미 external/header.php
에 있는 모든 주입 항목 파일을 작성했습니다. 수동으로 수행할 필요가 없습니다. 이전 기사 xhprof.inc.php
주입 파일과 비슷하게 작성하세요. external/header.php
,无需我们手动去写类似上一篇的xhprof.inc.php
注入文件。
安装MongoDB及客户端
xhgui 把日志写到了MongoDB,所以使用xhgui需要安装MongoDB服务端。此处省略安装、启动MongoDB服务端过程。
为提高 MongoDB 的性能,你可以运行以下指令以添加索引:
$ /usr/local/mongodb/bin/mongo > use xhprof db.results.ensureIndex( { 'meta.SERVER.REQUEST_TIME' : -1 } ) db.results.ensureIndex( { 'profile.main().wt' : -1 } ) db.results.ensureIndex( { 'profile.main().mu' : -1 } ) db.results.ensureIndex( { 'profile.main().cpu' : -1 } ) db.results.ensureIndex( { 'meta.url' : 1 } )
同理,由于xhgui是PHP写的,还需要读取MongoDB里的数据,需要安装MongoDB php 客户端:
pecl install mongodb
然后在php.ini文件添加配置:
[mongo] extension=mongo.so
查看扩展是否安装成功:
php -m | grep mongo
然后重启php-fpm服务。
配置xhgui
xhgui的config目录有一个config.default.php,复制为config.php
'db.host' => 'mongodb://127.0.0.1:27017',마찬가지로 xhgui는 PHP로 작성되었으며 MongoDB에서 데이터를 읽어야 하므로 MongoDB PHP 클라이언트를 설치해야 합니다.
'profiler.enable' => function() { //return rand(1, 100) === 42; return true; },그런 다음 php.ini 파일에 구성을 추가하세요:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "auto_prepend_file=/work/xhgui/external/header.php";
include fastcgi_params;
}
확장이 성공적으로 설치되었는지 확인하세요:
server { listen 80; server_name xhprof.test.com; #root /work/xhprof/xhprof_html; root /work/xhgui/webroot/; index index.php index.html; location / { if (!-e $request_filename) { rewrite . /index.php last; } } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }그런 다음 php-fpm 서비스를 다시 시작하세요. Configure xhguixhgui의 config 디렉토리에는 config.default.php가 있습니다. 이를
config.php
로 복사하고, mongodb 주소가 기본값이 아닌 경우 다음을 수정하세요. rrreee또한 수정하세요. 샘플링 주파수, 기본값은 1/100입니다. 테스트하면 true로 변경합니다.
rrreeeConfiguration projectjection
이전 글에서는 인젝션 항목 파일을 php.ini 또는 nginx로 작성할 수 있다고 소개했습니다. nginx 구성으로 작성하는 것이 좋습니다. 따라서 php 환경을 사용하는 모든 프로젝트가 아닌 nginx에 해당하는 프로젝트에만 영향을 미칩니다. 항목 파일은 xhgui와 함께 제공되는 주입 파일을 사용합니다:
jifen.cc.conf
rrreeeConfigure xhgui webxhprof.test.com.conf를 다음과 같이 수정합니다:
rrreee 애플리케이션 인터페이스를 여러 번 요청하고 브라우저를 열고 http://xhprof.test.com/에 입력하면 다음을 볼 수 있습니다. 🎜🎜🎜특정 요청을 클릭하면 세부 정보를 볼 수 있습니다. 🎜🎜🎜🎜위 내용은 다음과 같습니다. 이 글의 전체 내용이 모든 분들의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용을 보시려면 PHP 중국어 웹사이트를 주목해주세요! 🎜🎜관련 권장 사항: 🎜🎜🎜XHProf를 사용하여 PHP 성능 병목 현상을 분석하는 방법 1🎜🎜🎜🎜🎜위 내용은 XHProf를 사용하여 PHP 성능 병목 현상을 분석하는 방법 2의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

PHP는 현대화 프로세스에서 많은 웹 사이트 및 응용 프로그램을 지원하고 프레임 워크를 통해 개발 요구에 적응하기 때문에 여전히 중요합니다. 1.PHP7은 성능을 향상시키고 새로운 기능을 소개합니다. 2. Laravel, Symfony 및 Codeigniter와 같은 현대 프레임 워크는 개발을 단순화하고 코드 품질을 향상시킵니다. 3. 성능 최적화 및 모범 사례는 응용 프로그램 효율성을 더욱 향상시킵니다.

phphassignificallyimpactedwebdevelopmentandextendsbeyondit

PHP 유형은 코드 품질과 가독성을 향상시키기위한 프롬프트입니다. 1) 스칼라 유형 팁 : PHP7.0이므로 int, float 등과 같은 기능 매개 변수에 기본 데이터 유형을 지정할 수 있습니다. 2) 반환 유형 프롬프트 : 기능 반환 값 유형의 일관성을 확인하십시오. 3) Union 유형 프롬프트 : PHP8.0이므로 기능 매개 변수 또는 반환 값에 여러 유형을 지정할 수 있습니다. 4) Nullable 유형 프롬프트 : NULL 값을 포함하고 널 값을 반환 할 수있는 기능을 포함 할 수 있습니다.

PHP에서는 클론 키워드를 사용하여 객체 사본을 만들고 \ _ \ _ Clone Magic 메소드를 통해 클로닝 동작을 사용자 정의하십시오. 1. 복제 키워드를 사용하여 얕은 사본을 만들어 객체의 속성을 복제하지만 객체의 속성은 아닙니다. 2. \ _ \ _ 클론 방법은 얕은 복사 문제를 피하기 위해 중첩 된 물체를 깊이 복사 할 수 있습니다. 3. 복제의 순환 참조 및 성능 문제를 피하고 클로닝 작업을 최적화하여 효율성을 향상시키기 위해주의를 기울이십시오.

PHP는 웹 개발 및 컨텐츠 관리 시스템에 적합하며 Python은 데이터 과학, 기계 학습 및 자동화 스크립트에 적합합니다. 1.PHP는 빠르고 확장 가능한 웹 사이트 및 응용 프로그램을 구축하는 데 잘 작동하며 WordPress와 같은 CMS에서 일반적으로 사용됩니다. 2. Python은 Numpy 및 Tensorflow와 같은 풍부한 라이브러리를 통해 데이터 과학 및 기계 학습 분야에서 뛰어난 공연을했습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구
