2011-07-29 2 views
1

프로그래밍에 다소 익숙하며 데이터 캐싱에 관해 많은 질문을하고 있습니다. 정적 콘텐츠가 있습니다. 무엇이 더 빠를 것인가? 내용을 php \ html 파일에 저장하고 그대로 출력하거나 apc_fetch()를 통해 내용을 출력 할 스크립트를 사용하십시오 (이전에 메모리에 저장되어 있음)? 첫 번째 경우 아파치는 항상 파일 시스템에서 페이지를 읽고 RAM에 페이지를 보관하지 않습니다. 현재 APC 구현이 FastCGI와 잘 작동합니까? 미리 감사드립니다!캐싱 내용, 메모리 대 파일 시스템 (PHP 및 Apache)

아파치가 정적 페이지를 너무 빨리로드 할 수있는 반면 벤치 마크에서 파일 시스템을 사용하는 것에 비해 APC 캐싱을 사용할 때 4 배의 속도 향상이 나타나는 이유는 아직 없습니다.

답변

0

정적 HTML은 항상 가장 빠릅니다. opcode 캐싱을하더라도 PHP는 여전히 스크립트를로드하고 실행해야하며 캐시로 이동해야합니다. 반면에 Apache의 주된 목적은 가능한 한 빨리 정적 컨텐츠를 제공하고 최적화하는 것입니다.

+0

난 아직 아파치는 정적 페이지를로드 할 수 있지만, 파일 시스템을 사용하는 것에 비해 APC 캐싱을 사용하는 경우 벤치 마크는 배의 속도 향상을 보여 않는 이유에 받고 있지 않다 너무 빨리. – Dan

+0

필자는 파일 시스템에서 PHP 코드 자체 또는 직렬화 된 데이터에 대해 이야기하고 있다고 가정합니다. 이러한 경우 APC는 확실히 더 빠를 것입니다. PHP가 대개 모든 요청에 ​​대해 코드를 컴파일하거나 opcode 캐시의 경우 다른 파일에서 opcode를로드하기 때문입니다. 그러나 렌더링 된 컨텐트를 손으로 가져 오는 동안 정적 HTML은 항상 매회 우승해야합니다. –

1

전체 페이지를 정적으로 캐시하는 대신 해당 페이지 (데이터베이스 호출 등)에서 동적 인 부분을 캐시 한 다음 파일 시스템이나 memcache를 사용하여 캐시 결과를 저장합니다.

정적 페이지를 작성하면 사이트가 커질수록 유지 관리가 어려워지고 페이지를 자주 다시 작성하면 더 많은 오버 헤드가 발생합니다.

0

웹 서버가 디스크에서 모든 컨텐트 항목을 가져와야한다면 믿을 수 없을 정도로 느릴 것입니다. 모든 최신 운영 체제는 정교한 디스크 캐싱을 구현합니다.

그대로 PHP는 \ HTML 파일 및 출력 페이지에 콘텐츠를 저장

, 또는 apc_fetch를 통해 출력 내용을()

정적 파일을 액세스하는 스크립트를 사용 (예 : 아닌 PHP 파일)은 PHP 파일을 액세스하고, PHP를 구문 분석 한 다음 PHP를 실행하여 apc_fetch()를 호출하는 것보다 훨씬 빠르고 훨씬 빠릅니다. PHP에서 HTML 페이지를 생성하거나 PHP를 사용하여 APC에서 생성 된 결과를 검색하는 것이 더 빠를 것인지에 대한 대답은 PHP가 얼마나 많은 노력을해야하는지에 달려 있습니다.

...

<?php 
print "hello world"; 
?> 

있을 것보다 더 빨리

<?php 
print apc_fetch('hello'); 
?>