小编Pur*_*rui的帖子

这是内存泄漏(使用sqlalchemy/sqlite的python中的程序)

我有以下代码运行大量数据(2M).在完成之前它会占用我所有的4G内存.

    for sample in session.query(CodeSample).yield_per(100):
            for proj in projects:
                    if sample.filename.startswith(proj.abs_source):
                            sample.filename = "some other path"
                            session.add(sample)
Run Code Online (Sandbox Code Playgroud)

然后我通过一组简化的数据运行它,并用heapy分析堆.get_rp()给了我下面的暗示

0: _ --- [-] 47821 (0x9163aec | 0x9165fec | 0x916d6cc | 0x9251414 | 0x925704...
 1: a      [-] 8244 tuple: 0x903ec8c*37, 0x903fcfc*13, 0x9052ecc*46...
 2: aa ---- [S] 3446 types.CodeType: parseresult.py:73:src_path...
 3: ab      [S] 364 type: __builtin__.Struct, _random.Random, sqlite3.Cache...
 4: ac ---- [-] 90 sqlalchemy.sql.visitors.VisitableType: 0x9162f2c...
 5: aca      [S] 11 dict of module: ..sql..., codemodel, sqlalchemy
 6: acb ---- [-] 48 sqlalchemy.sql.visitors.VisitableType: 0x9162f2c...
 7: …
Run Code Online (Sandbox Code Playgroud)

python memory memory-leaks sqlalchemy

4
推荐指数
1
解决办法
3238
查看次数

标签 统计

memory ×1

memory-leaks ×1

python ×1

sqlalchemy ×1