PHP 확장 드루팔 호스팅 Xhprof

웹 응용 프로그램이 가장 많이 요구 중 하나는 성능 문제를 진단하고 평가하는 방법이다. Platform.sh 이미 신규 및 기존 코드의 성능 문제를 진단, 각 힘내 지점에 일치하는 새로운 환경을 생성하기 때문에 생산 현장의 동작에 영향을주지 않고 할 그 어느 때보 다 쉬워졌습니다. 이 포스팅은 드루팔 응용 프로그램의 성능 프로파일 링을하고 성능 핫스팟 쉽게 평가 있도록 이미지를 flamegraph 만들 수 XHProf PHP 확장과 함께 Platform.sh 환경을 사용하는 방법을 보여줍니다. 함께이 툴이 블로그 게시물을 가하고이 과정을 설명하는 자신의 작업 YesCT 및 msonnabaum 특별 감사.

LL 호스팅 Xhprof PHP 확장 드루팔을 추가하여이 작업을 수행 할

이 포스팅은 독자가 새로운 힘내 분기를 만들었다 고 가정합니다 (그리고 Platform.sh 환경에 대응) 또는이 작업을 수행하기 위해 기존의 것을 사용하고자. 이 프로세스에 대한 자세한 내용은 설명서 페이지를 참조하십시오.

우리가해야 할 첫번째 일은 XHProf 확장은 우리의 Platform.sh 프로젝트에서 활성화되어 있는지 확인합니다. 우리는과 같이, 우리의 .platform.app.yaml 파일의 확장자 목록에 키를 추가하여이 작업을 수행 :

이것은 자동으로 우리의 확장을 가능하게 할 것이다. 이제 우리는 우리의 도구가 있는지 확인하기 위해 우리의 배포 후크에 몇 줄을 추가합니다. (우리는 플랫폼 응용 프로그램의 임시 디렉토리를 사용하고있을 것이고,이 같은 환경의 배포에 걸쳐 지속되는 동안, 우리는 우리의 코드를 병합 가능하고 주변의 도구를 유지하려는. 이제 .platform.app의 배포 후크 부분이 추가하자 .yaml :

다음으로, 우리는 실제로 페이지 요청시 XHProf를 사용하는 우리의 코드베이스를 알 필요가있다. 우리는 드루팔의 index.php 파일의 전면에 일부 코드를 추가하여이 작업을 수행 할 수 있습니다. 바닐라 모드 (즉 Git 저장소에 최선을 다하고 전체 드루팔 사이트에) 우리는 단순히 index.php 파일을 편집 :이 일을하는 방법에는 두 가지가 있습니다. 우리는 프로젝트 모드를 사용하는 경우, 우리는 우리의 저장소에 아래 패치를 추가하고 우리가 빌드 과정에서 드루팔을 패치 할 수 있도록 우리의 project.make 파일에 행을 추가합니다.

이 index.php에 대한 패치입니다 :

그리고 우리는 프로젝트 모드에서 우리의 메이크 파일에 다음 행을 추가합니다 :

노력이 추가 코드, 우리는 Platform.sh에 밀어 준비하고 새로운 환경을 구축했다. 그 일 일단, 이제 재미가 시작된다! 우리는 (이 플랫폼 ssh를 달성하는 CLI를 사용하여) 우리 Platform.sh 환경에 SSH를 필요로하고 우리는 / 응용 프로그램입니다 우리의 홈 디렉토리에 끝날 것입니다. 우리의 코드베이스는 / 응용 프로그램 / 공공 장소에서 살고있다. 그러나 우리는 우리의 도구와 결과에 대한 응용 프로그램의 임시 디렉토리를 사용하기 위해 배포 후크를 설정합니다. 우리의 임시 디렉토리는 다음과 같이 보일 것입니다 :

PHP 확장 드루팔 호스팅 Xhprof 이제 우리는해야

이것은 우리의 프로파일 링 패치 파일에 저장하는 데 예상되는 디렉토리를 설정하고 우리가 flamegraph에 그 프로파일을 설정하는 데 필요한 도구를 잡고. 이제 테스트 할 시간이다! Platform.sh 환경의 URL을 사용하여, 우리는 우리가 프로파일에 관심이 어떤 페이지를로드합니다. (우리는 우리의 flamegraph를 구축하는 통계 괜찮은 세트를 수집 할 수 있도록 일반적으로는 좋은 생각이 페이지를 여러 번로드합니다.) 우리는 우리가 우리의 / 응용 프로그램에서 프로파일 결과 파일의 더미를해야한다는 완료하면 / tmp를 / xhprof 디렉토리, 그래서 같은 :

주목 우리의 패치 이름이 쉽게 우리가 필요로하는 단지 사람을 잡아 수 있습니다 요청 된 경로에 따라 결과 파일. 이 경우, 우리는 사용자의 주문 페이지의 성능에 관심이, 그래서 우리는 그 결과를 사용합니다. 우리는 결과에 대해 별도의 폴더를 만들고 그것으로 만 파일을 이동 :

이제 우리는 우리의 두 번째 폴더에 있습니다 만 그 결과 파일이 있어야합니다. flamegraph을 만들려면, 우리는 flamegraph 도구를 사용 (펄 로케일 오류를 무시해도) 우리가 배포 후크를 사용하여 다운로드 한 :

따 - ​​다! 이제 우리 SVG는 우리의 Platform.sh 환경에서 우리의 드루팔 파일 디렉토리에 볼 수 있습니다. 우리는 우리가 예상 한 것보다 페이지 요청시 더 많은 시간을 소모하는 기능을 식별 할 flamegraph를 사용하여 웹 브라우저에서로드 및 성능을 검사 할 수 있습니다. 예 :

이것은 우리가 쉽게주의가 필요하거나 성능에 영향을 미치는 버그를 포함하는 우리의 코드 조각을 식별 할 수 있습니다 - 우리는 개발자주의가 필요한 문제 영역을 찾고, 각 함수 호출의 자녀에 그래프와 피어의 다양한 구성 요소를 찾아 볼 수 있습니다. (색상은 대비를 사용하고 아무 의미가 없습니다.)이 Platform.sh 팀은 최근에 몇 가지 문제가 코드를 식별하기 위해이 방법을 사용하고 우리의 순서로 작업을 새로 고침에 약 1천2백퍼센트의 성능 향상을 달성 감아. 이것은 확실히 설정하고 사용하는 노력이 가치있는 도구입니다.

관련 기사

모듈 드루팔 호스팅을 새로 고침내가 경험이 풍부한 개발자입니다,하지만 난 드루팔 함께 일한 적이없는 세계 협정시 16시 18분하여 14 2008 년 5 월 mbrutsch에 의해 게시 됨. 나는 기존의 작은 화장품 변화의 몇 가지를 만들기 위해 사용되었다 ...
호스팅 색인기 GIF의 드루팔그것은 당신이 쉽게을 유발하지 않고 페이지에 대한 자세한 정보를 표시 할 수 있기 때문에 25 Drupion 지원에 의해 제출 2012년 9월 12시 44분 모달 창은 뛰어난 디자인 기능입니다 ...
사이트의 모든 모듈 드루팔 호스팅시스템 관리자 나 개발자가 다중 사이트 구성에서 동일한 서버에 여러 사이트를 호스트하기 위해 선택할 수 많은 이유가있다. 예를 들어, 이러한 구성은 수 ...
호스팅 여러 사이트 드루팔 사이트시스템 관리자 나 개발자가 다중 사이트 구성에서 동일한 서버에 여러 사이트를 호스트하기 위해 선택할 수 많은 이유가있다. 예를 들어, 이러한 구성은 수 ...
호스팅 캐시 테이블 드루팔 지우기드루팔 여러 데이터베이스 쿼리를 만들 필요가있는 페이지를 만듭니다. 이것은 트래픽이 많은 웹 사이트 속도가 느려질 수 있습니다. 캐시의 웹 사이트 빠른 드루팔 저장 웹 페이지를 확인하십시오. 그것은 좋은 ...