zengzhan / qqzeng-ip

最新IP地址数据库-多语言解析以及导入数据库脚本
https://www.qqzeng.com/
1.68k stars 575 forks source link

你好,能否提供数据区存储的技巧? #7

Closed kn007 closed 6 years ago

kn007 commented 6 years ago

我自己做的文件很大,因为数据区没有压缩。

数据区,像本库早期版本或纯真,都是通过flag或者说是个mode来控制重定向。

但新版,是直接通过位置和长度,就读出完整内容,而且文件还要小。

关于这块方法,方便透露吗?

谢谢。

zengzhan commented 6 years ago

参考一下 这里的数据结构 https://github.com/zengzhan/qqzeng-ip/blob/master/qqzeng-ip-dat 谢谢

kn007 commented 6 years ago

你好,恕我愚笨。结构都明白,也有看过,给了很多思路跟帮助。 但就是数据区过大,不明白为什么,明明我也用了UTF16 Little Endian(莫非操作有问题。。。)去转换数据区,再把二进制数据写入文件,但还是很大(可以说跟原始大小没太大区别),不知道要怎么去压缩。。

kn007 commented 6 years ago

我已经自己弄明白了,打扰了。


刚刚再次看了你的结构说明,你这说明必须懂了,才能明白。。。(可能是确实笨

kn007 commented 6 years ago

@zengzhan 你好,再请教一个疑问,用Little-Endian的目的在哪? 我测试了下Big-Endian和Little-Endian的速度差异并不大啊。。。

zengzhan commented 6 years ago

整数在内存中存储的顺序,现在 Little Endian 比较普遍

kn007 commented 6 years ago

哦,好的,谢谢解答。