在Django/Python中优化内存使用情况?
我需要帮助减少这个python脚本的内存使用:在Django/Python中优化内存使用情况?
tempproducts = TempProducts.objects.filter()
for url in tempproducts:
scrap_and_save_product(url.url,True,0)
scrap_and_save_product
是一个函数,它下脚料数据与BeautifulSoup和数据库保存它.. TempProducts有大约数十万件产品
每30分钟
220.059 MB
271.594 MB
313.316 MB
355.492 MB
373.516 MB
402.266 MB
437.328 MB
470.746 MB
507.195 MB
543.059 MB
574.215 MB
614.906 MB
643.902 MB
742.559 MB
787.93 MB
823.988 MB
856.949 MB
896.645 MB
931.93 MB
964.68 MB
:约50 MB
RAM使用日志RAM使用率增加
我怎样才能确切地检查哪个数据结构需要我的RAM?我如何在Python/Django中减少内存使用量? ...更好地使用元组或列表?
使用tempproducts=TempProducts.objects.filter().values('url')
从任何你在代码中所显示的,你只需要在数据库URL。相反,您正在获取存储在表中的所有内容,并最终保存在RAM中。
查询:tempproducts=TempProducts.objects.filter()
转换为类似:
SELECT * from tempproducts_table;
而temproducts = TemProducts.objects.filter().values('url',)
翻译为:
SELECT url from tempproducts_table;
确保在您的设置中有DEBUG = False
。如果此设置为true,则会保留SQL结果以进行调试。
我将DEBUG设置为false,现在我的RAM不增加“”“t也很重要,要记住,在DEBUG运行时,Django会记住它执行的每个SQL查询。 ,但在生产服务器上,它将快速消耗内存。“”“ – blaz1988 2014-12-07 20:48:58
Unfortunality,我不能告诉你,因为它是私有代码 – blaz1988 2014-12-07 15:43:29
我会尝试从提示您链接 – blaz1988 2014-12-07 18:15:08