gzip – 关于性能的问题

首先,我正在使用Django。 Django提供的gzip中间件工作得很好。 Nginx也提供了一个gzip模块。 仅仅使用Nginx的gzip模块会更有意义,因为它是纯粹用C语言实现的,还有其他性能方面的问题。

其次,Django不会在200字节以内的任何东西下压。 这是否是因为gzip压缩输出小于这个值时太昂贵了?

第三,我正在构build的API几乎是纯粹的dynamiccaching。 gzipping是否足够昂贵,使之在这种情况下使用不可行(与我可以在networking服务器上cachinggzip输出的情况相比)?

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