There are significant memory leaks when multiple insert statements are executed with distinct values. sqlite3 version is 2.6.0 The attached file contains two variants: * one which uses string interpolation to build the query: this generates severe leakeage * the other one is using parametrized queries and the leakeage is not as bad I'm assuming that somehow the query string reference is not freed properly.
leaking_tracemalloc.py: leaking.py adapted for tracemalloc. Output: [ Top 3 lines ] leaking_tracemalloc.py:24: size=46.0 KiB (+46.0 KiB), count=476 (+476), average=99 B leaking_tracemalloc.py:17: size=847 B (+847 B), count=6 (+6), average=141 B /home/haypo/prog/python/default/Lib/_weakrefset.py:37: size=368 B (+368 B), count=2 (+2), average=184 B I'm not sure that it's a leak because it doesn't depend on the number of queries nor the number of run of the test. It's maybe an internal sqlite cache.
> I'm not sure that it's a leak because it doesn't depend on the number of queries nor the number of run of the test. It's maybe an internal sqlite cache. You're right, the "leak" does not increase past ~300 queries executed.