从ndb数据存储区导出谷歌电子表格时,这个数据存储空间难以达到2 MB,但是谷歌应用引擎的运行时内存却耗尽了128 MB?怎么可能?我也做了一个bulk.yaml文件,我正在使用gapi调用并推迟在谷歌应用引擎上导出工作表,它显示错误超过运行时内存
答案 0 :(得分:1)
当我将数据从Cloud Datastore(NDB lib)导出到Google Spreadsheets时,我对旧的Python gdata库有同样的问题。
通常情况下,问题并非在第一次出口时发生,而是经常在稍后的某个时间点出现。我一直在调查实例的内存使用情况,并且随着每个导出工作的增加而增加。
原因是我的Python(2.7)代码中的内存泄漏处理了导出。如果我没记错的话,我的序列和列表中有大量的引用,其中一些可能是循环的,并且在作业完成后没有明确删除引用。至少对于gdata,内存中有很多元数据用于代码引用的每个单元格或行。
我认为这不是Google App Engine,Spreadsheets或您正在使用的库特有的问题,而是Python如何处理垃圾收集。如果还有引用,它们将占用内存。