【发布时间】:2014-02-04 16:27:56
【问题描述】:
我正在构建一个脚本来处理 Web 服务器日志,并且我正在尝试将 MaxMinds 的 IP 数据集 (http://dev.maxmind.com/geoip/legacy/geolite/) 合并到脚本中,以获取命中的国家/地区。
目前,当我让脚本提取我想要的信息时,它可以正常工作,但是当我尝试添加 IP 查找时,它会减慢 - 很多 - 大约 1800%。所以,我很好奇这是否与我的代码有关,或者是否有办法可以加快速度。
例如,当我运行以下代码提取日期和 IP 地址时,对于这个实验,它大约需要 6.5 秒。
extractedData = []
for log in logList:
ip = log[-1]
date = log[0]
dateIP = [date, ip]
extractedData.append(dateIP)
当我添加 pyGeoIP 并尝试合并国家代码时,它会变慢。以下代码运行了 2 分钟 7 秒。
extractedData = []
gi = pygeoip.GeoIP('/path/to/GeoIP.dat')
for log in logList:
ip = log[-1]
country = gi.country_name_by_addr(ip)
date = log[0]
dateCountry = [date, country]
extractedData.append(dateCountry)
那么,有没有办法加快这个速度,因为这个查找处理速度太慢了。
谢谢!
【问题讨论】:
标签: python performance python-2.7 maxmind