Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GZIP在发送到客户端之前压缩http响应_Java_Servlets - Fatal编程技术网

Java GZIP在发送到客户端之前压缩http响应

Java GZIP在发送到客户端之前压缩http响应,java,servlets,Java,Servlets,我已经用过滤器压缩了响应。接收到的数据已经从50MB压缩到5MB,但是,这并没有节省很多时间。所用时间已从12秒减少到10秒。是否有其他方法可以缩短时间段 最初,通过网络传输数据需要9秒,现在压缩后需要6秒,解压缩大约需要1秒 还可以做什么?对于过滤器,可能的措施很少: 存在不同的压缩级别,压缩越多,速度越慢。默认或GZIPOutputStream应该足够快 GZIPOutputStream具有要设置的size构造函数 然后是缓冲流,而不是按字节执行int read() 代码合理性审查:必须删

我已经用过滤器压缩了响应。接收到的数据已经从50MB压缩到5MB,但是,这并没有节省很多时间。所用时间已从12秒减少到10秒。是否有其他方法可以缩短时间段

最初,通过网络传输数据需要9秒,现在压缩后需要6秒,解压缩大约需要1秒


还可以做什么?

对于过滤器,可能的措施很少:

  • 存在不同的压缩级别,压缩越多,速度越慢。默认或GZIPOutputStream应该足够快
  • GZIPOutputStream具有要设置的
    size
    构造函数
  • 然后是缓冲流,而不是按字节执行
    int read()
  • 代码合理性审查:必须删除原始内容长度标题
对于静态内容:

  • .bmp是对空间的浪费
  • .pdf可以在图像重复时进行优化,w.r.t.字体
  • .docx是一种zip格式,因此内部图像文件可能也会得到优化
对于动态内容生成:

  • 可以使用时间戳存储固定文档(xxxxxx.yyy.gz),然后再存储生成时间。只有在测量了真正的瓶颈后才感兴趣;很可能是网络
  • 交付代码应该是快速的。在一般的链流中,尝试不写入ByteArrayOutputStream,而是立即写入BufferedOutputStream(原始输出流)。检查缓冲是否未执行两次。一些包装流检查包装流是否为缓冲流的实例
生产环境:

  • 也许您甚至需要节流(减慢交付速度),以便同时服务多个请求
  • 您可能需要在另一台服务器上进行传递
  • 从供应商处购买速度。询问提供商,吞吐量是否过高,提供商是否减慢了速度

获得更快的连接?在过滤器中压缩。。。为什么不启用内置的tomcat Conctor GZIP压缩?通过网络传输50MB需要9秒,传输5MB需要6秒?要么你的网络真的很奇怪,要么你的计时测量没有测量你认为他们测量的东西。