2010-12-21 9 views
9

먼저 장고를 사용하고 있습니다. Django는 잘 작동하는 gzip 미들웨어를 제공합니다. Nginx는 또한 gzip 모듈을 제공합니다. 그것은 단순히 C로 구현 되었기 때문에 Nginx의 gzip 모듈을 사용하는 것이 더 합리적일까요, 아니면 제가 놓친 다른 성능 고려 사항이 있습니다.gzip - 성능에 대한 질문입니다.

둘째, Django는 200 바이트 미만의 내용을 gzip으로 처리하지 않습니다. 이것은 gzipping이 너무 비싸 출력을 압축 할 때 값을 가질 수 없기 때문입니까?

셋째, 구축중인 API는 캐싱이 거의없는 순전히 동적 인 것입니다. 웹 서버에서 gzipped 출력을 캐시 할 수있는 상황과 비교할 때이 상황에서 사용할 수 없도록 비싼 gzipping을 사용하고 있습니까?

답변

8

1) 내가 아직 벤치마킹하지 않았지만, 한 gzip 압축으로 충분하고 nginx가 빠르다고 생각합니다. GzipMiddleware은 최적화 된 몇 가지 내장 기능을 사용합니다. 하나가 바로이 단계를 생략하여 시간을 절약 할 수 있도록

# From http://www.xhaus.com/alan/python/httpcomp.html#gzip 
# Used with permission. 
def compress_string(s): 
    import cStringIO, gzip 
    zbuf = cStringIO.StringIO() 
    zfile = gzip.GzipFile(mode='wb', compresslevel=6, fileobj=zbuf) 
    zfile.write(s) 
    zfile.close() 
    return zbuf.getvalue() 

2) 작은 gzip으로 압축 파일은 처리 할 때 (사실 작은 파일), 더 큰 수 있습니다 압축에서 이용할 수 없습니다.

3) 샘플 데이터를 포함하는 테스트 슈트를 디자인 할 수 있습니다. 그런 다음 해당 데이터를 결정하면 응용 프로그램에 가장 적합한 데이터가됩니다.

관련 문제