2010-02-07 2 views
1

저는 파이썬으로 블로그를 작성하고 있으며 사용하려는 URL 스키마를 결정해야하는 시점에 왔습니다.파이썬 성능과 관련하여 블로그 URL 스키마를 결정하십시오.

http://myblog.com/1 
http://myblog.com/2 
... 
http://myblog.com/1568 

그리고 서버 측에서 내가 파이썬 목록에서 블로그 항목 만있을 것입니다 : 단지 항목이 같은 말에 시작 나열하는 유혹입니다. 내 두려움은 목록이 커지면 요청한 항목으로 이동하는 것이 느려지 게된다는 것입니다. 나는 (메모리에서와 같이) 엔트리가 얼마나 큰지 알지 못하기 때문에 저수준 배열 (심지어 파이썬에있는 경우)이나 고정 된 크기의 테이블을 저장할 수 없다.

http://myblog.com/2010/1 
http://myblog.com/2010/2 
http://myblog.com/2011/1 

을 내가 트리 구조의 항목을 저장할 수 있기 때문에이 일을 속도를 추측 :

entries = { 
    '2010': [entry1, entry2, ...], 
    '2012': [entry1, entry2, ...] 
} 

내가 생각하고 다른 옵션은 올해 엔트리 URL을 접두사입니다

어떻게 하시겠습니까? 나는 사람들이 어떻게 생각하는지에 관심이있어 토론을 열어 둔다.

감사합니다.

+2

나는 그 내용을 문자 그대로 * 귀하의 코드에 저장할 계획입니까? – balpha

+0

예. 물론 서버의 재시작 등을 견뎌 낼 수 있도록 어딘가에 저장할 것입니다. 그렇지 않으면 단지 텍스트 일 ​​뿐이므로 RAM에 저장하지 않을 이유가 없습니다. – pthulin

+1

음 ... 어쨌든 : 목록 조회는 탐색과는 아무런 관련이 없으며 실제로 매우 빠릅니다 (http://stackoverflow.com/questions/2214651/efficient-python-array-with-100-million-zeros for 예). 나는이 시점에서 최적화하는 것에 대해 생각하지 않기를 강력히 제안합니다. 그것은 시기상조입니다. 어쨌든 URL에서 항목을 찾는 문제는 병목 현상이되지는 않습니다. – balpha

답변

0

사전을 사용하여 블로그 항목에 URL을 매핑하는 방법은 무엇입니까? 이것은 간단하며 사전에는 O (1) 조회가 있으므로 블로그에 항목이 많아도 빠를 것입니다.

+0

어쩌면, 나는 그것이 메모리 소비와 CPU 사이의 균형이 될 것이라고 생각한다. – pthulin

1

성능 차이는 무시해도 좋습니다. 목록 또는 사전의 오버 헤드는 항목의 텍스트 크기보다 훨씬 작습니다.

메모리에 모든 것을 보관하는 것은 좋은 해결책이 아닙니다. 항목을 디스크 (데이터베이스, 플랫 파일 등)에 저장 한 다음 캐시를 사용하여 가장 자주 액세스되는 항목을 메모리에 유지해야합니다 (필요한 경우).

관련 문제