From f95d59c47b7a7e681e5d5af10d94db398a314bba Mon Sep 17 00:00:00 2001 From: Lion Date: Wed, 29 Jun 2022 17:49:59 +0800 Subject: [PATCH] some optimizations --- binding/golang/xdb/header.go | 36 ------------------------------------ maker/golang/ReadMe.md | 9 ++++++--- maker/golang/xdb/searcher.go | 2 +- 3 files changed, 7 insertions(+), 40 deletions(-) delete mode 100644 binding/golang/xdb/header.go diff --git a/binding/golang/xdb/header.go b/binding/golang/xdb/header.go deleted file mode 100644 index 561b562..0000000 --- a/binding/golang/xdb/header.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2022 The Ip2Region Authors. All rights reserved. -// Use of this source code is governed by a Apache2.0-style -// license that can be found in the LICENSE file. - -// @Author Lion -// @Date 2022/06/16 - -package xdb - -import ( - "encoding/binary" - "fmt" -) - -type Header struct { - // data []byte - Version uint16 - IndexPolicy IndexPolicy - CreatedAt uint32 - StartIndexPtr uint32 - EndIndexPtr uint32 -} - -func NewHeader(input []byte) (*Header, error) { - if len(input) < 16 { - return nil, fmt.Errorf("invalid input buffer") - } - - return &Header{ - Version: binary.LittleEndian.Uint16(input), - IndexPolicy: IndexPolicy(binary.LittleEndian.Uint16(input[2:])), - CreatedAt: binary.LittleEndian.Uint32(input[4:]), - StartIndexPtr: binary.LittleEndian.Uint32(input[8:]), - EndIndexPtr: binary.LittleEndian.Uint32(input[12:]), - }, nil -} diff --git a/maker/golang/ReadMe.md b/maker/golang/ReadMe.md index d906906..ce8ce8c 100644 --- a/maker/golang/ReadMe.md +++ b/maker/golang/ReadMe.md @@ -1,5 +1,6 @@ # ip2region xdb golang 生成实现 + # 程序编译 通过如下方式编译得到 xdb_maker 可执行程序: @@ -9,7 +10,8 @@ make ``` 编译成功后会在当前目录生成一个 xdb_maker 的可执行文件 -# 数据生成 + +# `xdb` 数据生成 通过 `xdb_maker gen` 命令生成 ip2region.xdb 二进制文件: ``` @@ -29,7 +31,8 @@ options: 2022/06/16 16:38:48 main.go:89: Done, elapsed: 33.615278847s ``` -# 数据查询 + +# `xdb` 数据查询 通过 `xdb_maker search` 命令来测试查询输入的 ip: ``` @@ -59,7 +62,7 @@ ip2region>> # bench 测试 -如果你自主生成了 xdb 文件,请确保运行如下的 `xdb_maker bench` 命令来确保生成的的 xdb 文件的正确性: +如果你自主生成了 `xdb` 文件,请确保运行如下的 `xdb_maker bench` 命令来确保生成的的 `xdb` 文件的正确性: ``` ➜ golang git:(v2.0_xdb) ✗ ./xdb_maker bench ./xdb_maker bench [command options] diff --git a/maker/golang/xdb/searcher.go b/maker/golang/xdb/searcher.go index ed4d0f7..841372a 100644 --- a/maker/golang/xdb/searcher.go +++ b/maker/golang/xdb/searcher.go @@ -113,7 +113,7 @@ func (s *Searcher) Search(ip uint32) (string, int, error) { } ioCount++ - var buff = make([]byte, 8) + var buff = make([]byte, VectorIndexSize) rLen, err := s.handle.Read(buff) if err != nil { return "", ioCount, fmt.Errorf("read vector index at %d: %w", pos, err)