2010-07-04 2 views
4

나는 페이지가로드에 대한 유용한 통계를 수집하는 펄의 도구를 가지고 싶습니다 (예를 들어, 다운로드 시간/속도, CDN 정보, 헤더, DNS 조회, 압박)이 있는지YSlow 대신 Perl을 사용할 수 있습니까?

사람이 존재하는 경우 모르거나합니까 어떻게 만드는지 배울 곳?

+1

YSlow를 사용하지 않는 이유를 이해할 수 없습니다. Perl을 사용하면 다른 브라우저 구성 요소 등에 연결해야합니다. 실제로는 적합하지 않습니다. – Timothy

+0

'get' 또는'LWP'를 사용하고 싶다면 브라우저를 통해 페이지를로드하지 않을 것입니다. 나는'대안 '으로'버전'을 변경했다. 내가 어디로 가는지 보니? --- 브라우저의 필요없이 Perl을 통해 내 페이지로드에 대한 정보를 얻으려고합니다. – vol7ron

+0

Perl 도구? 무슨 소리 야? 서버 측 Perl CGI 또는 클라이언트 측 Perl 스크립트? 귀하의 질문을 명확히하십시오! AFAIK, YSlow는 XUL + JavaScript로 작성되었으며 클라이언트 측에서 실행됩니다. 대부분의 웹 관련 Perl 코드는 서버 측입니다. –

답변

1

WWW::Mechanize 모듈을 확장하는 WWW::Mechanize::Timed을 시도해 볼 수있다. :: Timed 기능을 사용하면 요청 시간에 대한 정보를 수집 할 수 있습니다. 기본 :: Mechanize 모듈 자체는 LWP :: UserAgent의 하위 클래스이며 헤더, 본문 내용 및 이미지를 포함하여 응답에 대한 액세스 권한을 제공합니다. 이것들을 통해 전체 페이지의 "weight", 요청 수 등을 계산할 수 있습니다. 이것은 YSlow가하는 모든 것을 다루지는 않습니다 (gethostbyname의 기본 DNS 내부를 드러내는 것은 좋은 트릭이 될 것입니다!).하지만 시작하기를 바랍니다. 너의 질문을 제대로 이해했다.

+0

Does :: Timed는 또한 JavaScript 작업의로드를 포함합니까? 나는 Mechanize가 JavaScript 명령을 처리 할 수 ​​없다고 생각했기 때문에 모든 사후로드 또는로드 된 AJAX 조작은 무시되었습니다. – vol7ron

+0

당신이 맞습니다, 그것은 JavaScript를 처리하지 않습니다. Mechanize는 웹 브라우저가되는 경우에 가까워지고 있습니다. 여기에서 나가는 곳은하려는 일에 달려 있습니다. 서버 로그를 분석하려고합니까? 자신의 사이트에서 자동 벤치마킹을 실행 하시겠습니까? 다른 사이트에서 조사합니까? YSlow를 재발 명하기보다는 데이터를 축적하고 싶습니까? YSlow에서 통계를 추출하는 방법에 대해 http://developer.yahoo.com/yslow/help/beacons.html#yslow_beacon을 시도해 볼 수 있습니다. –

+0

비커닝을 실행하면 iMacros 또는 CronZilla와 같은 확장 프로그램을 사용하여 URL 탐색을 자동화 할 수 있습니다. Firefox는 지정한 일정에 지정된 URL에 도달하고 YSlow (자동 모드에서)는 각 URL을 평가하고 데이터 수집 서버를 나타냅니다. Net :: Server와 같은 많은 데몬 패키지 중 하나를 사용하여 Perl에 데이터 수집기를 작성하여 비컨을 수신하고 처리 할 수 ​​있습니다. 프로젝트에 대해 알지 못해도 내가 제공 할 수있는 모든 것입니다. 행운을 빕니다! –

0

프로파일 러에서 perl CGI (또는 perl 프로그램)를 몇 번 실행하고 공통점을 검색 할 수 있습니다. 이 같은 웹 기반 인터페이스를 보지 못했다,하지만 당신은 사물의 펄 측면을 제어 할 경우, 문서는 여기에 있습니다 :

http://www.perl.com/pub/a/2004/06/25/profiling.html

그것은 기본적으로 펄 프로그램을 실행으로 귀결 - D : DProf하고, 같은 디렉토리에 dprofpp를 실행 완료 후 :

# perl -d:DProf ./foo.pl 
# dprofpp 

업데이트 :

이 이

예,이 프로토콜 프로파일, 같은 정당 아래에 명시된과 같은 일이 아니지만,이 때로 믿을 수 피의 대안이 될 수 없다. rl. 느린 부분의 Perl 부분이 어디에서 왔는지 찾으려고한다면, perl을 프로파일 링하는 것이 좋은 출발점입니다. YSlow와 같은 제품은 CGI가 펄이나 PHP 또는 파이썬인지 여부에 관계없이 순수한 프로토콜 측면을 추적합니다.

개인적으로 필자는 Python과 Flash로 구성된 내 장고 사이트를 프로파일 링하기 위해 사용하며, 시스템의 프로토콜 부분과는 별도로 프로파일 링합니다.이 사이트는 YSlow도 사용합니다. 이 정확한 문제가 해결되지 않는 경우가 있다면

http://www.gnu.org/software/ddd/

미안 해요, 내가 알고 싶습니다 : 또한

, 적어도이 그래픽 것 "DDD"에 대한 펄 플러그인이있다 perl 인터페이스도이 점을 대조해 보면 알 수 있겠지만, 여기가 내가보기 시작할 곳이라는 것을 알고있다.

+0

답변은 간신히 유용합니다 : 런타임 프로파일 링은 프로토콜 프로파일 링과 동일하지 않습니다. – daxim

+0

@ daxim : 똑같은 것은 아니지만 유용한 것입니다. 알고있는 perl에는 그 밖의 많은 것들이 없습니다. 당신이 비판적이되고 싶다면 적어도 추가 할 수있는 것을 찾으십시오. – eruciform

+0

ddd는 디버거입니다. YSlow가하는 일에 전혀 적합하지 않은 또 다른 도구. 다음은 메모리 누수 추적기입니까? – daxim