我将Selenium和Firefox Webdriver与python配合使用,以从网站中抓取数据。
但是在代码中,我需要访问该网站超过10k次,并且这样做要消耗大量RAM。
通常,当脚本访问该站点2500次时,它已经消耗了4GB或更多的RAM,并且停止工作。
是否可以在不关闭浏览器会话的情况下减少内存RAM的消耗?
我问这是因为,当我启动脚本时,需要手动登录该站点(两因素加成,下面未显示代码),如果关闭浏览器会话,则需要再次登录该站点。
for itemLista in lista:
driver.get("https://mytest.site.com/query/option?opt="+str(itemLista))
isActivated = driver.find_element_by_xpath('//div/table//tr[2]//td[1]')
activationDate = driver.find_element_by_xpath('//div/table//tr[2]//td[2]')
print(str(isActivated.text))
print(str(activationDate.text))
indice+=1
print("numero: "+str(indice))
file2.write(itemLista+" "+str(isActivated.text)+" "+str(activationDate.text)+"\n")
#close file
file2.close()
我发现了如何避免内存泄漏。
我只是用
time.sleep(2)
后
file2.write(itemLista+" "+str(isActivated.text)+" "+str(activationDate.text)+"\n")
现在,firefox在不消耗大量内存的情况下运行
太完美了。
我不知道为什么停止停止会消耗如此多的内存,但是我认为它正在增加内存消耗,因为它没有时间来完成每个driver.get请求。
问题内容: 我一直在为OpenGL练习编写Minecraft副本(据我估计很多),但是在编写了基本的渲染API之后,我注意到真正的Minecraft 占用了 大量 内存或内存- 大约800MB!我完全可以理解为什么它必须记住所有的块,以及生成器的小怪和地形数据……我问自己:“此块与该块完全相同。它们可以在代码中吗? ” 并记得C ++有指针,所以我试图用我能想到的唯一方法在Java中做同样的事情,
我需要让IntelliJ的想法使用更少的ram,有什么建议可以让它使用更少的ram吗?
问题内容: 我正在编写独立于操作系统的无锁队列,到目前为止,它工作得很好,但是内存管理方面的问题很小。我不确定它的gcc问题还是我的。问题:将元素添加到列表时,内存增加,但是从列表中删除元素(free(elementPointer);)时,内存使用率没有变化。 但是,当我使用pthreads时,N个生产者和M个消费者的 内存使用量始终约为10mb(当尝试添加和删除〜10kk元素时),因此看起来自由
调用clear方法时,内存似乎减少了。然而,从其他答案来看,似乎< code>clear方法从未收缩过< code>HashMap。那么为什么内存会减少呢?
在android应用程序中使用Glide v4。用例是有一个活动在backback中有几个片段。每个片段将从远程加载一到不到十个图像。 具有用于将图像加载到ImageView的kotlin扩展: 片段中的典型调用如下: 问题是,每当看到一个片段并将其添加到Backback时,探查器中的图形内存就会增加50 mg。除了片段中的图像之外,没有太多其他数据。如果注释掉,加载的图像似乎减少了很多。 不确定
我们希望单独写每个列表,也以前写的文件不应该加载到堆,而写下一个列表。