2013-04-29 4 views
0

jquery UI 자동 완성을 위해 json 결과를 반환하기 위해 재사용 가능한 장고 응용 프로그램을 작성했습니다.데이터를 장고 응용 프로그램의 메모리에 저장하는 것이 좋습니다.

현재 각 클래스/함수에 대해 고유 한 키를 사용하여 사전에 결과를 가져 오는 클래스/함수를 저장하고 있습니다.

요청이 오면 dict에서 해당 클래스/함수를 선택하고 출력을 반환합니다.

내 쿼리는 위의 작업을 수행하는 것이 가장 좋은 방법인지 또는 동일한 결과를 얻는 다른 방법이 있는지 확인하는 것입니다.

샘플 GIST : https://gist.github.com/ajumell/5483685

+0

코드 예제로 질문을 명확히 할 수 있습니까? – Aya

답변

2

매우 일반적인 질문입니다. 기본 코드는 코드의 인프라에 따라 다릅니다. 클래스와 모델이 정의되는 방식과 응용 프로그램의 동적 특성.

둘째, 응용 프로그램이 실행되는 서버의 리소스를 고려해야합니다. 사용 가능한 메모리 용량 및 디스크 공간의 양을 고려하여 응용 프로그램의 성능을 고려하십시오.

이러한 중요한 리소스를 모두 메모리에 저장해야하는 작업이 얼마나 중요한지는 중요합니다. 메모리가 일시적이므로 응용 프로그램이 다시 시작되면 모든 클래스를 다시 인스턴스화해야하며 아마도 많은 작업이 필요합니다.

다시 생각해 보면 최적화는 자주 쿼리되는 메모리 개체를 유지하는 데 매우 적합하지만 캐시는 이전의 모든 것을 고려해야합니다.

+0

답변 해 주셔서 감사합니다. 나는 의심이 하나 더있다. 쿼리 조회가 더 큰 결과를 반환하면 메모리에 남아 있으며 메모리 사용을 최적화하는 방법이 있습니다. –

+0

실제로 Django의 QuerySet은 패턴 호출 "Lazy loading"(http://en.wikipedia.org/wiki/Lazy_loading)을 통해 매우 최적화됩니다.이 기능을 사용하면 객체가 필요할 때만 액세스하므로 메모리 필드의 일부가 아직 필요하지 않을 때 큰 오브젝트로 채워지지 않습니다. –

+0

답장을 보내 주셔서 감사합니다. 함수가 사용하는 메모리를 지우는 수동 방법이 있는지 알고 싶습니다. –

1

사전에 일련의 기능을 저장 및 조건부 요구에 기초하여 하나를 선택하고이를 처리하기 위해 완벽하게 허용되는 방법이다.

좀 더 구체적인 답변을 원하시면 실제 코드를 게시하는 것이 좋습니다. 둘째, 이것은 코드 판독에 더 적합 할 수 있습니다. 스택 교환

3

메모 작성의 한 형태에 대해 말하는 것 같습니다.

이 사전에 해당 결과에을 의존하지 않는 한, 이것은 정상입니다. 이는 메모리가 각 프로세스에 대해 로컬 일 것이므로 동일한 프로세스에서 처리되는 후속 요청을 보장 할 수 없기 때문입니다. 그러나 결과를 생성 할 수있는 대체 시스템을 사용하면 완벽하게 최적화됩니다.

관련 문제