2010-07-28 4 views

답변

5

정적 기능 캐싱 등 : 함수의 결과가 응용 프로그램의 실행 중에 변경하지 않을 경우

function cachedFunction($foo) 
{ 
    static $result = array(); 
    if (isset($result[$foo])) { 
     return $result[$foo]; 
    } 

    $return[$foo] = resultOfSomeTimeConsumingStuff(); 
    return $return[$foo]; 
} 

당신은 캐시 기능을 훨씬 빠르게 반복 호출을받을 수 있습니다.

제대로 설계된 응용 프로그램에서는이 기능이 필요하지 않지만 많은 노력을하지 않고 오래되었거나 잘못 설계된 시스템에서 많은 성능을 끌어내는 것은 매우 유용합니다.

나는 프로젝트에서 평균 HTTP 요청 시간을 약 50 %로 줄였습니다. 앱이 실제로 "신선한"결과를 요구하지 않고 동일한 기능을 반복적으로 호출했기 때문입니다.

이 트릭을 사용하면 구식 데이터를 얻을 수 있습니다. 그러니 조심해.

+1

좋은 하나! ----- –

+0

이것을 메모 작성이라고합니다. – Andy

1

같은

나 나 자신은 내가 Variable variables을 좋아합니다.

+3

아, 상처! IMNSHO, 가변 변수는 사람들이 배열을 생성하는 것을 게을러 게하고, 프로젝트의 다른 모든 사람들에게 대단히 읽을 수없는 것입니다 : P – Wrikken

+3

배열로 더 완벽하게 해결할 수없는 가변 변수에 대한 사용을 찾지 못했습니다. – JAL

+2

아니요 가변 변수는 지저분한 코드로 이어지고 피해야합니다. 배열은 훨씬 적은 고통으로 동일한 작업을 수행합니다. – selfawaresoup

관련 문제