Django gzip-关于性能的问题

Django gzip-关于性能的问题,django,compression,nginx,gzip,Django,Compression,Nginx,Gzip,首先,我用的是Django。Django提供了工作正常的gzip中间件。Nginx还提供了一个gzip模块。仅仅使用Nginx的gzip模块是否更有意义,因为它完全是用C实现的,还是我缺少了其他性能方面的考虑 其次,Django在200字节以下不会gzip任何内容。这是因为压缩输出小于此值时,gzip太昂贵而没有任何价值吗 第三,我正在构建的API几乎完全是动态的,几乎没有缓存。gzip的成本是否足以使它在这种情况下不实用(与我可以在Web服务器上缓存gzip输出的情况相比)?1)我认为一次gz

首先,我用的是Django。Django提供了工作正常的gzip中间件。Nginx还提供了一个gzip模块。仅仅使用Nginx的gzip模块是否更有意义,因为它完全是用C实现的,还是我缺少了其他性能方面的考虑

其次,Django在200字节以下不会gzip任何内容。这是因为压缩输出小于此值时,gzip太昂贵而没有任何价值吗

第三,我正在构建的API几乎完全是动态的,几乎没有缓存。gzip的成本是否足以使它在这种情况下不实用(与我可以在Web服务器上缓存gzip输出的情况相比)?

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) 您可以设计一个包含示例数据的测试套件。然后决定哪些数据最适合您的应用程序