gpt4 book ai didi

python - 哪个更快?内存缓存还是文件查询? (使用 maxmind geoip.dat 文件)

转载 作者:行者123 更新时间:2023-11-28 20:53:28 24 4
gpt4 key购买 nike

我在 Appengine 上使用 Python 并正在查找 IP 地址的地理位置,如下所示:

import pygeoip
gi = pygeoip.GeoIP('GeoIP.dat')
Location = gi.country_code_by_addr(self.request.remote_addr)

(pygeoip 可以在这里找到:http://code.google.com/p/pygeoip/)

我想为用户定位我的应用程序的每个页面,所以目前我查找 IP 地址一次,然后将其存储在内存缓存中。

我的问题 - 哪个更快?每次从 .dat 文件中查找 IP 地址或从内存缓存中获取它?还有其他我需要注意的优点/缺点吗?

对于像这样的一般查询,是否有好的指南可以教我如何优化我的代码并自己运行速度测试?我是 python 和一般编码的新手,如果这是一个基本概念,我深表歉意。

谢谢!

汤姆

编辑:感谢您的回复,内存缓存似乎是正确的答案。我认为 Nick 和 Lennart 建议我将整个 gi 变量添加到内存缓存中。我认为这是可能的。仅供引用 - 整个 GeoIP.dat 文件刚刚超过 1MB,所以不是那么大。

最佳答案

需要时间的是从 dat 文件加载数据库。一旦你把它记在内存中,查找时间就不重要了。因此,如果您可以将 gi 变量保存在内存中,这似乎是最好的解决方案。

如果你不能,你可能也不能使用 memcached。

关于python - 哪个更快?内存缓存还是文件查询? (使用 maxmind geoip.dat 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4569780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com