2010-04-06 7 views
5

저는 현재 내 자신의 프레임 워크를 사용하여 사이트를 다시 작성하고 있습니다 (매우 간단하고 정확히 필요한 것을 수행합니다. 젠드 또는 Cake PHP와 같은 것을 필요로하지 않습니다). 난 모든 일을 제대로 캐시에 파일의 페이지를 캐싱, 그래서 SQL 쿼리를 피하고 일반적으로 SQL 쿼리의 수를 제한 캐시 작업을 많이 했어.PHP 메모리가 너무 많습니다

전반적으로 매우 빠른 것처럼 보입니다. 첫 페이지 (100 회 이상 촬영)에 소요 된 평균 시간은 0.046152 마이크로 초입니다.

하지만 한 가지 확실한 것은 PHP 메모리 사용을 줄이기 위해 충분히 수행했는지 여부입니다. 내가 문제를 겪은 유일한 시간은 대용량 파일을 업로드 할 때입니다.

메모리 사용량이 가장 많은 메모리를 사용하는 memory_get_peak_usage (TRUE)를 사용하면 평균 (100 회 이상 소요)은 1572864 바이트입니다.

괜찮습니까?

나는 당신이 무엇을하고 있는지 알지 못한다는 것을 깨닫는다. (오히려 간단하다. 최신 기사 10 개, 각 기사에 대한 코멘트 수를 얻고, 사용자 컨트롤, 사이드 바에서 인기있는 태그 등을 얻는다.) 그러나 하루에 5 만회가 넘는 메모리를 사용하는 스크립트를 사용하면 걱정하지 않으셔도 될까요? 아니면 피크 시간에 매초마다?

나는 이것이 매우 열린 질문이라는 것을 알고 있습니다. 바라건대 당신은 그것이 어둠 속에서 약간의 찌르다는 것을 이해할 수 있습니다. 그리고 저는 정말로 재발사의 날에 끔찍하게 죽지 않을 것이라는 재 보증을 찾고 있습니다.

편집 : 나 자신을 위해 한 작은 실험. 나는 Wordpress와 기본 설치를 추가로 추가하고 하나의 사용자와 단 하나의 게시물을 다운로드하고 설치했으며 10.5 메가 바이트의 메모리 또는 "11010048 bytes"를 사용했습니다. 나는 지금 1.5 메가 바이트를 매우 기뻐했다.

답변

3

메모리 사용량은 크게 다를 수 있으며 변동될 수 있습니다. 그러나 이미 업데이트에서 말한 것처럼 일반 WordPress 인스턴스는 그보다 훨씬 더 뚱뚱합니다. 플러그 - 인이 작동 할 때, 16 메가 바이트의 memory_limit로 실행되는 WordPress 백엔드를 얻으려면 큰 문제가있었습니다. 그래서, 나는 정상적인 작업을 수행하는 1,5 메가 바이트의 피크가 꽤 괜찮다고 말하고 싶습니다.

생성 시간은 사이트가 실행되는 하드웨어의 영향을 크게받습니다. 그러나 0.046152 초 (여기에 초가 있다고 가정)의 생성 시간은 정상적인 상황에서 나에게 아주 좋아 보인다.

+0

초를 생각했을 것입니다. 그러나 나는 시작과 START - microtime() 끝에 정의 ('START', 마이크로 시간())를 사용하여 시간을 측정합니다. 나는 이것이 초보다는 마이크로 초 안에 걸리는 시간을 줄 것이라고 생각하는 것 같아요? – Rob

+0

@Rob 'float' 매개 변수를 사용하고 있습니까? –

+0

php.net은 기본값이 무엇인지 명시하지 않습니다. 그러나 나는 마이크로 시간 함수에 어떤 인자도 보내지 않을 것이다. – Rob

3

주관적인 질문입니다. PHP에는 많은 오버 헤드가 있으며 TRUE로 함수를 호출하면 해당 오버 헤드가 포함됩니다. 간단한 Hello World 스크립트에서 함수를 호출하면 무슨 뜻인지 알 수 있습니다. 또한 PHP가 apache 모듈로 실행되는지 또는 FastCGI로 실행되는지에 따라 결과가 크게 다를 수 있습니다.

불행히도 아무도 보증을 제공 할 수 없습니다. 사이트를 다운시킬 수있는 예측할 수없는 변수가 항상있을 것입니다. 부하 테스트를 수행하십시오. 코드 프로파일 러를 사용하여 병목 현상의 위치를 ​​좁혀 코드 블록을보다 효율적으로 만들 수있는 방법이 있는지 확인하십시오.

백과 사전 브리태니커는 10 년 전에 광고 지원 백과 사전을 시작할 때 준비했다고 생각했습니다. 개발자들은 출시 당일 굿모닝 아메리카에서 발표 할 것이라는 것을 몰랐습니다. 모든 것이 며칠 동안 무너지기 시작했습니다.

+0

TRUE로 함수를 호출 할 때 왜 많은 오버 헤드가 발생합니까? FALSE가 더 많은 계산을 필요로하지 않습니까? – Pacerier

0

시스템이 스와핑되지 않는 한 메모리 사용은 적당합니다. 추가 관심사는 조숙 한 최적화에 불과합니다.

관련 문제