← Back to team overview

zeitgeist team mailing list archive

[Bug 624310] Re: Large requests increase memory usage considerably

 

I had a brief discussion with the guys on #python
---
<seiflotfy> can u explain to me why inheriting from object with __slots__ uses less memory than inheriting from list?  make it for dummies so i can explain it to my team

<verte> seiflotfy: do you know what a struct looks like in memory?

<seiflotfy> verte, nope

<verte> seiflotfy: __slots__ is exactly that. on some implementations of
python, the object literally has one pointer for each field. there's no
dict hanging about to store attributes.

<seiflotfy> so the statement is true then ?

<nedbat> seiflotfy:  the statement about __slots__ reducing memory? Yes,
that was a major goal of __slots__.

<verte> seiflotfy: oh, yes. if you need methods on what would otherwise
be a tuple, and you expect to have lots of those objects, __slots__ may
be a good idea.

-- 
You received this bug notification because you are a member of Zeitgeist
Extensions, which is the registrant for Zeitgeist Extensions.
https://bugs.launchpad.net/bugs/624310

Title:
  Large requests increase memory usage considerably

Status in Zeitgeist Framework:
  Confirmed
Status in Zeitgeist Extensions:
  New

Bug description:
  I'm seeing with standalone Sezen that after running it, mem usage of
  the zeitgeist-daemon process goes up from ~13MB to ~40MB, this is
  understandable as when Sezen is starting, it does one big query where
  it asks for everything grouped by most recent subjects and in my case
  this returns ~11 thousand events, so the extra 30MB can be explained
  by allocating memory for the DBus reply.

  Still, my question is whether Zeitgeist should be at mercy of the
  applications, where nothing prevents them from spiking the memory
  usage of the core process. (I already saw a couple of times zeitgeist
  using 80-100MB of memory on my system). Perhaps there's a way to tell
  python dbus to free its buffers?


References