On 5/3/2017 8:40 AM, Larry Martell wrote:
On Wed, May 3, 2017 at 8:29 AM, Chris Angelico <ros...@gmail.com> wrote:
On Wed, May 3, 2017 at 10:12 PM, Larry Martell <larry.mart...@gmail.com> wrote:
On Wed, May 3, 2017 at 12:57 AM, Chris Angelico <ros...@gmail.com> wrote:
On Wed, May 3, 2017 at 5:53 AM, Larry Martell <larry.mart...@gmail.com> wrote:
And I can see it getting larger and larger. But I want to see what it
is that is causing this. My thought was to put all the objects in a
dict with their sizes and compare them as the program runs and report
on the one that are growing. But I can't get the name of the object
from gc.get_objects only the id.

Coming right back to the beginning here: What do you expect the name
of an object to be?

The name of the variable in the program, e.g. sql, db_conn, rows, etc.

Name bindings are one-way. You can't go from the object to its name.
An object may have zero, one, or multiple names; and function-local
names could be used more than once.

Yeah, that makes sense.

If you want an object to have a name for tracing purposes, you'll have
to give it one as some sort of attribute.

A good trick to know. Thanks.

Python already uses this trick for functions, classes, and modules by giving them .__name__ attribute. Code objects have a .co_name attribute. These are used for tracing and tracebacks.


--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to