file_get_contents를 사용하여 디스크에서 XML 파일을로드하고 있으며, file_get_contents()
을 사용하여 156K 파일을로드 할 수있는 테스트를 3.99 초 만에 완료했습니다. 로딩을 수행하고 memcache 레이어로 대체 한 부분을 서브 클래 싱했습니다. 그리고 내 dev 머신에서 4.54 초 만에 같은 문서를 1000 번로드 할 수 있습니다.왜 file_get_contents가 memcache_get보다 빠릅니까?
file_get_contents()가 일부 캐싱을 수행하지만 실제로는 잘 알려진 캐싱 기술보다 빠른 것 같습니다. 단일 서버에서 성능이 file_get_contents()
만큼 좋을까요?
Macports, OS X 10.6.8을 통해 PHP 5.2.17을 사용 중입니다.
편집 :이 크기의 XML 문서에서 발견 한 바에 따르면 MEMCACHE_COMPRESSED
플래그를 사용할 때 얻을 수있는 작은 이점이 있습니다. memcache를 통한 1,500로드는 6.74 초 (압축 없음)가 아닌 6.44 초 (완료)로 수행됩니다. 그러나 둘 다 file_get_contents
보다 느리며, 5.71 초 동안 같은 수의로드를 수행합니다.
아, 재미 있습니다. 여러 XML 파일이 항상로드되는 웹 서버에서 Memcache 방식의 성능이 _ 경우에 따라 더 좋을 수도 있습니다. (아마도 저가형 Linux VPS에, 아마도 512MB의 RAM을 탑재 할 것으로 예상됩니다. memcache가 기본적으로 예약하는 기본 64M은 무료입니다.) – halfer
여전히 FS 캐시에서 뭔가를 노크하는 논쟁이 memcache 캐시에서 뭔가를 노크 할 가능성이 있을지 궁금합니다. ';-)' – halfer
하나의 응용 프로그램에 전용 인 VPS에서는 다음을 수행 할 수 있어야합니다. 적합하게 모든 것을 얻으십시오. 그러나 캐시의 "크기 조정"에 가치가있는 것 : memcache에 32M을 사용하거나 그 이상이면 충분합니다. 앱이 PHP 기반 인 경우 APC 또는 Xcache를 사용해야합니다. MySQL을 사용하면 MySQL 캐시를 조정하여 좋은 성능 배당을 얻을 수 있다는 것을 잊지 마십시오. 512MB는 충분히 작아서 현명하게 할당해야합니다. – TerryE