|
发表于 2025-1-22 11:56:41
|
显示全部楼层
江苏省南京市
经过测试解压gzip时, 最大耗费时间是字节集数组组合, 后用快速对象类YZC模块中,快速字节集类YZC类替换了数组, 解压速度提升3倍左右, 效果明显压缩效果差不多,
模块下载地址, 请自行下载
https://bbs.125.la/forum.php?mod ... 7%E8%8A%82%E9%9B%86
|
GZIP_压缩_MJ | 字节集 | | |
data | 字节集 | | | | windowBits | 整数型 | | | | chunkSize | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | strm | z_stream | | | out | 字节集 | | | temp | 字节集 | | | err | 整数型 | | | 字节集 | 快速字节集类YZC | | |
如果真 (是否为空 (chunkSize ))  chunkSize = 4096 如果真 (是否为空 (windowBits ))  windowBits = 31  如果真 (DeflateInit (strm, windowBits ) ≠ #Z_ERROR_OK ) 返回 (out )temp = 取空白字节集 (chunkSize)strm.next_in = 取变量数据地址 (data )strm.avail_in = 取字节集长度 (data )strm.total_in = 0 strm.next_out = 取变量数据地址 (temp )strm.avail_out = 取字节集长度 (temp )strm.total_out = 0 err = Deflate (strm, #Z_FLUSH_NO_FLUSH ) 如果真 (err = #Z_ERROR_OK ) 字节集. 添加 (取字节集左边 (temp, strm.total_out ))  循环判断首 ()  strm.next_out = 取变量数据地址 (temp )  strm.avail_out = 取字节集长度 (temp )  strm.total_out = 0   err = Deflate (strm, #Z_FLUSH_PARTIAL_FLUSH )  如果真 (err = #Z_ERROR_OK )   判断 (strm.total_out ≠ 0 )    字节集. 添加 (取字节集左边 (temp, strm.total_out ))    跳出循环 ()        循环判断尾 (err = #Z_ERROR_OK )DeflateEnd (strm)返回 (字节集. 取字节集 (, )) |
GZIP_解压_MJ | 字节集 | | |
data | 字节集 | | | | windowBits | 整数型 | | | | chunkSize | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | strm | z_stream | | | out | 字节集 | | | temp | 字节集 | | | err | 整数型 | | | 字节集 | 快速字节集类YZC | | |
如果真 (是否为空 (chunkSize ))  chunkSize = 4096 如果真 (是否为空 (windowBits ))  windowBits = 31 如果真 (InflateInit (strm, windowBits ) ≠ #Z_ERROR_OK ) 返回 (out )temp = 取空白字节集 (chunkSize)strm.next_in = 取变量数据地址 (data )strm.avail_in = 取字节集长度 (data )strm.total_in = 0 循环判断首 () strm.next_out = 取变量数据地址 (temp ) strm.avail_out = 取字节集长度 (temp ) strm.total_out = 0  err = Inflate (strm, #Z_FLUSH_NO_FLUSH ) 判断 (err = #Z_ERROR_OK )  判断 (strm.total_out ≠ 0 )   字节集. 添加 (取字节集左边 (temp, strm.total_out ))   跳出循环 ()    判断 (err = #Z_ERROR_STREAM_END )  err = Inflate (strm, #Z_FLUSH_PARTIAL_FLUSH )  如果真 (strm.total_out ≠ 0 )   字节集. 添加 (取字节集左边 (temp, strm.total_out ))  跳出循环 ()      循环判断尾 (err = #Z_ERROR_OK )InflateEnd (strm )返回 (字节集. 取字节集 (, ))
|
|