本人博客已经迁移至 www.shangyang.me 欢迎大家访问
1. 首先,我们需要一个免费的IP地址库.
纯真IP地址库 是个不错的选择 (见附件)
2. IPParser.java 读取 该纯真地址库. (见附件)
该 IPParser 工具 不需要cache任何数据(避免大量内存占用), 直接文件RandomAccess读取.
性能测试:
1). 几乎 零 耗时读取一个IP 的详细信息 (精确到 ns )。
2). 几乎 零 内存消耗 读取一个IP的详细信息 (精确到 b )。
详细测试用例,见源码!
优点: 无需 cache 任何IP信息,避免 OutOfMemory, 而且性能非常之好.
大可不必担心并发下的性能开销,该算法的主要性能开销在初始化RandomAccess对象, 但是该IPParser的算法速度极快,在<1ns (0.000001s)的情况下基本上就计算完成;所以,即便是在高并发情况下,RandomAccess 对象的 生命周期也就在0.000001s 左右时间内结束.