请压缩和解压缩方面的朋友帮忙看看,该怎么处理

请压缩和解压缩方面的朋友帮忙看看
本人尝试将内存块进行压缩
目前使用的是HUFFMAN,也就是ZIP压缩
但是这个查字典方式的压缩速度实在太抓狂了

本人的需求是:实时处理 [注意,实时是个关键]
要求将内存块,例如400KB,在硬件比如Intel E2140 CPU,单核心占用下,希望在0.1秒内完成压缩,时间越短越好
但是这种字典方式的压缩速度达不到需求

不知道有没有更好的方法能在尽可能短的时间内完成压缩,对压缩率的要求,倒不是非常重要,只要不低于ZIP方式85%就可以
有没有朋友推荐好的实时压缩算法,当然有参考代码最好


------解决方案--------------------
你可以看看gzip的压缩方法,它支持动态压缩和静态压缩
动态压缩压缩效率高,静态压缩效率要高一些
------解决方案--------------------
你可以强制使用静态霍夫曼编码,简单使用gzip,它会建立动态树,并将动态编码和静态编码的结果比较来取压缩比较好的,这样就浪费时间了
需要你对压缩流程做一个处理,只使用静态编码,这样效率上应该能提高不少
------解决方案--------------------
E2140在0.1s里已经有160,000,000CPU周期了,分摊到400KB里,每字节可以摊到390周期,应该可以执行200条以上的指令。似乎应该够用了。

我想你努力优化一下程序也许就能解决。
------解决方案--------------------
静态编码就是用历史数据作依据生成的编码树,实际压缩时不再生成新树了。如果你的块数据里各不同码值出现的几率基本稳定,就可以使用静态编码来加快压缩速度。

此外,你的机器是单核的?否则怎么会因为一个压缩线程就耗尽CPU呢?现在的机器应该至少双核了吧,换一台就好。
------解决方案--------------------
LZ有没有看过以前生成的编码里最长的码位有多大?超过32位没有?
------解决方案--------------------
探讨

静态编码就是用历史数据作依据生成的编码树,实际压缩时不再生成新树了。如果你的块数据里各不同码值出现的几率基本稳定,就可以使用静态编码来加快压缩速度。

此外,你的机器是单核的?否则怎么会因为一个压缩线程就耗尽CPU呢?现在的机器应该至少双核了吧,换一台就好。

------解决方案--------------------
cpu密集型
------解决方案--------------------
他的压缩程序是单线程的啊,怎么会害得机器来不及通信的?
------解决方案--------------------
这个不是你CPU满载的理由。你都说了,是网络传输部分在等待数据压缩,而你的数据压缩是单线程的?既然这样,它就最多耗去50%的CPU。

另外,你说你已经达到了每秒30次压缩?那你在顶楼提出的0.1s完成400kB压缩岂不是还没你现在的实际情况好?
------解决方案--------------------
想要用实时压缩追上千兆网的传输速度,那要非常好的机器才行。E2140恐怕无力承担。