草庐IT

zlib_compressor

全部标签

Go 1.0.2 zlib 压缩时如何提高速度

我正在使用Go(v1.0.2)开发一个小程序。我正在尝试将行加载到内存中,我可以通过索引(一行的第一列)调用它。为了节省空间,我用zlib压缩了每一行。行按block分组。项目是从文件中加载的。一个项目由一条线表示。这条线有很多属性,用表格分隔。它工作得很好,但目前确实很慢。我花了将近50秒来加载一个40Mb的文件!(请注意,如果我禁用“压缩”部分,则只需要0.87秒)。我显然做错了什么,但我找不到什么。请注意,我是这门语言的初学者。注意:我卡在了Go1.0.2上,无法更新。packagemainimport("bytes""compress/zlib""encoding/json""

go - 堆叠写入器和 zlib.writer 的校验和错误

我有两个对象写入器,第一个封装了io.Writer并在写入时同时计算内容的SHA1校验和,第二个首先封装并写入zlib压缩数据。我的带有一些测试数据的单元测试用例通过了第一个编写器,但第二个编写器失败了。我在哪里做错了什么?代码片段:import("compress/zlib""crypto/sha1""hash""io")typeObjectWriterinterface{io.WriterCommit()([]byte,error)}typeoWriterstruct{writerio.Writersumhash.Hash}func(ow*oWriter)Write(b[]byte

arrays - 如何使用golang的zlib?

varbufbytes.BuffervaroutputBuffer[100]byteb:=[]byte(`{"Name":"Wednesday","Age":6,"Parents":["Gomez","Morticia"],"test":{"prop1":1,"prop2":[1,2,3]}}`)w:=zlib.NewWriter(&buf)r,_:=zlib.NewReader(&buf)w.Write(b)w.Flush()r.Read(outputBuffer)//cannotuseoutputBuffer(type[100]byte)astype[]byteinfunction

go - 如何修复没有标题的 zlib 文件?

我需要解压缩一个用zlib压缩的git对象。尽管对象是用zlib压缩的,但它没有header(我猜是为了节省带宽)。所以我试图在对象字节的顶部添加header,但由于某些原因zlib仍然提示header无效。我怀疑标题字节是作为字符串文字而不是字节添加的,但我不确定。请参阅下面的代码。packagemainimport("compress/zlib""io/ioutil""bytes""fmt"//"strings")funcmain(){b,err:=ioutil.ReadFile("raw")iferr!=nil{panic(err)}constheader="\x1f\x8b\x

Go:zlib 解压一段字节

我正在尝试解析一个烦人的文件,该文件包含许多单独的压缩段。我已将这些段一次一个地解析为byteslice,我想在进行时解压缩它们。这是我当前执行解压缩的代码,它不起作用。from和to只是作为例子设置在顶部,实际上它们是由代码设置的。data是包含整个文件的字节数组。我不想在它在磁盘上时寻找它,因为它位于另一台服务器上,所以对我来说只有先将整个文件加载到[]byte然后再解析它才是现实的。from,to:=0,1000;b:=bytes.NewReader(data[from:from+to])z,err:=zlib.NewReader(b)CheckErr(err)deferz.Cl

arrays - 戈朗 : gzip or zlib compression of byte array sporadically hangs

我有以下函数来压缩字节数组:funccompress(input[]byte)[]byte{varbufbytes.Buffercompr:=gzip.NewWriter(&buf)compr.Write(input)//hereitappearstohanguntil//Enterispressedcompr.Close()output:=buf.Bytes()returnoutput}函数偶尔会挂起。当我按下[Enter]时,函数将继续并返回预期结果。我在这里遗漏了什么吗?它会挂起大约五分之一,即使给出相同的输入也是如此。无论我使用gzip还是zlib,都没有关系。我在Linuxx

go - “r.(flate.Reader)”在golang的zlib/reader.go文件中是什么意思?

我在golang的zlib/reader.go文件中找到了很多像r.(flate.Reader)这样的代码片段。这是什么意思?https://golang.org/src/compress/zlib/reader.gofunc(z*reader)Reset(rio.Reader,dict[]byte)error{iffr,ok:=r.(flate.Reader);ok{z.r=fr}else{z.r=bufio.NewReader(r)}//morecodeomitted...}附言io和flate的源代码。io:https://golang.org/src/io/io.goFlate

c++ - zlib 的奇怪分析结果

我正在玩zlib并且有这样的(简化的)代码:#include//memset#include#include#includeconstintcompressionLevel_=9;constsize_tBUFFER_SIZE=1024*8;charbuffer_[BUFFER_SIZE];std::stringcompress(constchar*data,size_tconstsize){z_streamzs;memset(&zs,0,sizeof(zs));if(deflateInit(&zs,compressionLevel_)!=Z_OK)return{};zs.next_in

c - 从 STM32F0 和 zlib 匹配 CRC32

我正在研究运行Linux的计算机和STM32F0之间的通信链路。我想对我的数据包使用某种错误检测,因为STM32F0有CRC32硬件,我在Linux上有带CRC32的zlib,我认为在我的项目中使用CRC32是个好主意。问题是对于不同平台上的相同数据,我不会获得相同的CRC值。#include#include#include#include#includeintmain(void){uint8_tbyte0=0x00;uint32_tcrc0=crc32(0L,Z_NULL,0);crc0=crc32(crc0,&byte0,1);printf("CRC32valueof%"PRIu8

linux - 在 Linux 服务器上安装 ZLIB

我要安装ZLIB在Linux服务器中。我的服务器帐户是:/home/myname。我在我的帐户上正确下载并提取了ZLIB。然后,我进入ZLIB1.2.6文件夹并运行命令:./configure--prefix=/home/myname/zlib但是,它给出了错误:-bash:./configure:Permissiondenied谁能帮我看看为什么会这样? 最佳答案 好的,如果您使用的是Debian,您应该这样做:su成为根apt-getupdate刷新包列表,然后apt-cachesearchzlib查看刚刚更新的列表中的相关包,