从几乎没有 2 MB 大小的 ndb 数据存储导出 google 电子表格时,会占用 google 应用引擎 128 Mb 的运行时内存?这怎么可能?我还制作了一个bulk.yaml文件,并且我正在使用gapi调用并推迟在Google应用程序引擎上导出工作表,并且它显示EXceeding运行时内存的错误
最佳答案
当我将数据从 Cloud Datastore (NDB lib) 导出到 Google Spreadsheets 时,旧的 Python gdata 库也遇到了同样的问题。
通常情况下,第一次导出时不会出现此问题,但通常会在稍后的某个时刻出现。我一直在研究实例的内存使用情况,发现它随着每个导出作业的增加而增加。
原因是处理导出的 Python (2.7) 代码中存在内存泄漏。如果我没记错的话,我有包含大量引用文献的字典和列表,其中一些可能是循环的,并且在工作完成后这些引用文献还没有被明确删除。至少对于 gdata,内存中对于代码引用的每个单元格或行都有大量元数据。
我认为这不是 Google App Engine、电子表格或您正在使用的库特有的问题,而是 Python 如何处理垃圾收集的问题。如果还有引用,它们就会占用内存。
关于python - 超出软专用运行时内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48924431/