【问题标题】:gzip - questions about performancegzip - 关于性能的问题
【发布时间】:2011-05-28 15:04:13
【问题描述】:

首先,我使用的是 Django。 Django 提供了 gzip 中间件,它工作得很好。 Nginx 还提供了一个 gzip 模块。仅使用 Nginx 的 gzip 模块是否更有意义,因为它纯粹用 C 实现,还是我缺少其他性能考虑因素。

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

第三,我正在构建的 API 几乎是纯动态的,几乎没有缓存。 gzipping 是否足够昂贵以至于在这种情况下使用它不切实际(相对于我可以在网络服务器上缓存 gzipped 输出的情况)?

【问题讨论】:

    标签: django compression nginx gzip


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-09-24
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 2013-03-23
      • 1970-01-01
      相关资源
      最近更新 更多