Java GZIP在发送到客户端之前压缩http响应
我已经用过滤器压缩了响应。接收到的数据已经从50MB压缩到5MB,但是,这并没有节省很多时间。所用时间已从12秒减少到10秒。是否有其他方法可以缩短时间段 最初,通过网络传输数据需要9秒,现在压缩后需要6秒,解压缩大约需要1秒Java GZIP在发送到客户端之前压缩http响应,java,servlets,Java,Servlets,我已经用过滤器压缩了响应。接收到的数据已经从50MB压缩到5MB,但是,这并没有节省很多时间。所用时间已从12秒减少到10秒。是否有其他方法可以缩短时间段 最初,通过网络传输数据需要9秒,现在压缩后需要6秒,解压缩大约需要1秒 还可以做什么?对于过滤器,可能的措施很少: 存在不同的压缩级别,压缩越多,速度越慢。默认或GZIPOutputStream应该足够快 GZIPOutputStream具有要设置的size构造函数 然后是缓冲流,而不是按字节执行int read() 代码合理性审查:必须删
还可以做什么?对于过滤器,可能的措施很少:
- 存在不同的压缩级别,压缩越多,速度越慢。默认或GZIPOutputStream应该足够快
- GZIPOutputStream具有要设置的
构造函数size
- 然后是缓冲流,而不是按字节执行
int read()
- 代码合理性审查:必须删除原始内容长度标题
- .bmp是对空间的浪费
- .pdf可以在图像重复时进行优化,w.r.t.字体
- .docx是一种zip格式,因此内部图像文件可能也会得到优化
- 可以使用时间戳存储固定文档(xxxxxx.yyy.gz),然后再存储生成时间。只有在测量了真正的瓶颈后才感兴趣;很可能是网络
- 交付代码应该是快速的。在一般的链流中,尝试不写入ByteArrayOutputStream,而是立即写入BufferedOutputStream(原始输出流)。检查缓冲是否未执行两次。一些包装流检查包装流是否为缓冲流的实例
- 也许您甚至需要节流(减慢交付速度),以便同时服务多个请求
- 您可能需要在另一台服务器上进行传递
- 从供应商处购买速度。询问提供商,吞吐量是否过高,提供商是否减慢了速度