在Linux上运行了几个小时后,我使用urllib2,httplib和线程的Python 2.6程序开始为每个请求引发此错误:
<class 'urllib2.URLError'> URLError(gaierror(-3, 'Temporary failure in name resolution'),)
如果我重新启动程序,它会再次开始工作.我的猜测是某种资源枯竭但我不知道如何检查它.我该如何诊断和解决问题?
我经常发现很难决定并且不一致.我可以遵循一些规则吗?
例如:
def remove_except(haystack, needle, exclude_value):
for key in hackstack:
if key in needle and haystack[key] != exclude_value:
hackstack.pop(key)
Run Code Online (Sandbox Code Playgroud)
可能很容易:
def remove_except(needle, exclude_value, haystack):
for key in hackstack:
if key in needle and haystack[key] != exclude_value:
hackstack.pop(key)
Run Code Online (Sandbox Code Playgroud)
这不是一个完美的例子,因为我倾向于将变量作为第一个参数进行修改,例如haystack,这甚至可能是一个惯例,但除此之外,我不确定该怎么做.
我对比Python更多的语言感兴趣.
建立
我有一组独特的整数,其值介于1到5千万之间.随机添加新的整数,例如numberset.add(random.randint(1, 50000000)).我需要能够快速添加新的整数并快速检查是否已存在整数.
问题
过了一会儿,这套装置对我的低内存系统来说变得太大了,我体验到了MemoryError.
题
如何在使用更少内存的同时实现这一目标?使用磁盘而不重新配置系统(例如交换文件)的最快方法是什么?我应该使用像sqlite这样的数据库文件吗?是否有一个库可以压缩内存中的整数?