2012-09-12 2 views
1

내 웹 사이트에서 onapp api를 사용하고 있으며 onapp의 모든 서버를 가져 오는 페이지에서 페이지를 가져옵니다. 일부 사용자의 경우이 목록은 매우 커서 어떤 경우에는 1000 개까지 확장됩니다. 응답은 데이터 일뿐만 아니라 다른 정보도 포함합니다. 또한 페이지 매김을하고 있습니다. 따라서 각 API에 대해 호출해야하며 데이터를 채워야합니다. 이제이 속도를 높이기 위해 파일에 대한 응답을 쓰고 읽고 있습니다. 그러나 또한 시간이 걸립니다. 어쨌든이 작업을 포기할 수 있습니까?캐싱 API 응답

파일 캐싱 전에는 각 페이지가 약 45 초 정도 걸리던 중 이제는 25로 줄어 듭니다. 그러나 이것은 또한 높은 가치입니다. Symfony Framework를 사용하고 있습니다. 파일에 데이터를 캐싱하기 위해 다음 코드를 사용하고 있습니다.

$userStatisticsCached=unserialize(file_get_contents($filePath)); 
    if(is_null($userStatisticsCached)||$userStatisticsCached==false){ 
     $userStatistics = $statisticsInstance->getList(1); 
     file_put_contents($filePath, serialize($userStatistics)); 
    } 
    else { 
     $userStatistics=$userStatisticsCached; 
    } 

적은로드 시간으로 동일한 출력을 얻는 더 좋은 방법이 있습니까?

+0

어떤 도움 ????????? –

답변

2

첫 번째 : 45 초는 페이지를로드하는 데 많이 필요합니다. 얼마나 많은 API 호출을하고 있습니까?

두 번째 : 파일 시스템에 이미 모든 API 호출이 캐시되어있는 경우와 마찬가지로, 25seconds는 절대적으로 엄청납니다. 페이지가로드되는 파일 시스템 조회수는 얼마나됩니까? 25 초 페이지로드를 측정 할 때 모든 API 요청이 캐시되어 있습니까?

인 - 메모리 캐싱 : 는 데이터의 크기에 따라, 나는 확실히 캐시 조회 속도를 높이기 위해 메모리에서 캐시 된 데이터를 저장하는 건의 할 것입니다. 1GB 이하의 캐시의 경우 문제가되지 않아야합니다 (실행중인 서버 하드웨어/호스팅 제공 업체에 따라 다름). 첫 번째로 좋은 선택은 Memcache이며 좋은 PHP support 일 수 있습니다.

Memcache 실행 : 컴퓨터에서 로컬로 작업 할 때는 memcached을 설치해야합니다. 서버에 웹 사이트를 업로드 할 때 Memcache가 동일한 서버에서 실행되고 있는지 확인하거나 Memcache 서버에 연결하는 방법에 대한 자세한 내용은 서버 호스팅 공급자에게 문의하십시오. 대부분의 PHP 호스팅 제공 업체는 Memcache를 호스팅의 일부로 제공합니다. 그렇지 않은 경우 MemCachier과 같은 호스트 된 원격 Memcache 공급자를 사용할 수 있습니다. 원격 서버에 대한 대기 시간이 캐시 조회 속도를 늦추 게됩니다.