购买专业版

免费额度即开即用无需注册,更高配额通过企业微信申请

免费

¥0
  • 每 IP 每秒 10 次
  • 网页与 REST API
  • 无需注册
立即使用

企业服务

定制
  • 独立部署
  • 批量接口
  • SLA 支持
联系我们

为什么这么快

同样一次归属地查询,常见方案要经过一次网络往返到 Redis 或 SQL,再解析文本记录。XIP 把这些工作全部搬到构建期,运行期只剩一次移位和几次比较。

① 构建期编译索引

68 万条 IP 段在构建时被编译成 6.96 MiB 专用二进制索引,地点字符串去重后只剩 13,827 条并预渲染为 JSON 片段。运行期不解析任何文本、不连接任何数据库。

② /16 一级索引

65,536 个桶把整个 IPv4 空间直接切开,取 IP 高 16 位一次移位即可定位候选区间,平均只剩 11 条记录待判定,再做局部二分。

③ mmap 零拷贝

索引由内核页缓存直接映射进地址空间,查询路径上没有堆分配、没有 GC、没有连接池,多个进程共享同一份物理内存。

实测数据(16 核 x86-64,本地环回,HTTP/1.1 keep-alive)
查询内核吞吐(单线程)39.2 M 次/秒
单次查询耗时25.5 ns
平均比较次数1.61 次
朴素全表二分所需比较次数20 次
零比较直接命中的 /16 区段50.0%
最坏比较次数12 次
HTTP 端到端吞吐1,439,381 req/s
单请求往返延迟p50 9 µs / p99 12 µs
常驻内存(700 万次请求后)13.6 MB 无增长
服务二进制体积1.18 MB

测试方法:xip bench 为单线程随机 IPv4 查询;HTTP 吞吐使用 32 条 keep-alive 连接、每条 32 个流水线请求压测,瓶颈在压测端。比较次数由索引文件的桶分布直接统计得出。以上数据均可在本仓库复现。

企业微信申请

扫码加入企业微信群,请在群内说明预计 QPS、使用场景和部署区域。

企业微信入群二维码
在手机上直接打开邀请链接