머리말:
MooPHP를 개발하는 동안 보다 효율적인 캐싱 방법을 찾기 위해 가장 일반적으로 사용되는 두 가지 캐싱 방법을 테스트했습니다.
PHP의 일반적인 캐싱 방법:
첫 번째는 캐시해야 할 데이터를 처리하고 PHP에서 직접 실행할 수 있는 파일을 구성하는 것입니다. 데이터를 캐시해야 할 경우에는 include를 통해 도입하고 사용하세요.
둘째, 직렬화 기능을 통해 필요한 데이터를 직렬화하고 파일에 직접 저장합니다. 캐시된 데이터를 사용해야 하는 경우 deserialization을 통해 파일 내용을 읽어서 필요한 변수에 복사한 후 사용하세요.
테스트 결과:
테스트를 통해 우리는 직렬화를 통해 데이터를 캐싱하는 두 번째 방법이 더 효율적이라는 것을 발견했습니다. (데이터는 생략되었으며, 마지막에 기사 주소를 다운로드할 수 있도록 제공하므로 직접 테스트해 보실 수 있습니다.)
이유 분석:
포함 모드에서 캐시를 읽을 때 PHP는 여러 프로세스를 수행해야 합니다.
1. 파일 읽기
2. 포함된 파일을 구문 분석합니다.
3. 변수에 값을 할당
하고 직렬화를 사용하여 캐시를 읽는 경우 실행:
1. 데이터 읽기
2. 데이터 콘텐츠 역직렬화
3. 변수에 값을 할당합니다
. 위의 비교를 보면 PHP 파일에서 배열을 구문 분석하는 데 필요한 시간이 배열을 직렬화 해제하는 데 필요한 시간을 초과할 수 있습니다. 관심이 있으시면 "PHP 파일 시스템 관련 기능 및 요구 사항 포함의 성능 효율성에 대한 연구"를 확인하실 수 있습니다: http://www.ccvita.com/163.html
테스트 파일 코드:
다운로드 주소: MooPHP-CacheTest.zip
원래 주소: http://www.ccvita.com/311.html 새로운 연구 결과는 여기에 업데이트됩니다.
CacheTest_IncludeFile.php
CacheTest_SerializeFile.php
요약 분석:
첫째, 캐싱 포함의 장점은 데이터의 기밀성과 보안을 높이고 캐시된 콘텐츠가 외부 세계에서 발견되지 않는다는 것입니다.
단점: 상대적으로 느림.
목적: 웹 시스템 설정이나 MySQL 정보 등 시스템 외부에 공개가 금지된 데이터를 저장합니다. 둘째, 직렬화 캐시 방식의 장점은 속도가 더 빠르다는 것입니다.
단점: 캐시 시스템 파일 경로가 노출되면 캐시 내용이 유출됩니다.
목적: 이 방법은 외부에서 얻은 데이터에 대해 걱정하지 않고 최신 기사, 관련 기사 등을 캐싱할 때 사용할 수 있습니다.
주목:
ea, apc 등의 PHP 메모리 캐시가 설치된 경우, include를 통해 캐시를 읽는 첫 번째 방법이 캐시를 직렬화하는 두 번째 방법보다 빠릅니다. 따라서 MooPHP 프레임워크에서는 중요하지 않은 정보를 두 번째 방법으로 캐시합니다. 민감한 정보는 첫 번째 방법으로 캐시합니다. MooPHP에 대한 소개는 "MooPHP 프레임워크 소개"(주소: http://www.ccvita.com/295.html ) 문서를 참조하세요.