Progress on the Gilectomy

Cem Karan cfkaran2 at gmail.com
Tue Jun 20 21:56:56 EDT 2017


On Jun 20, 2017, at 1:19 AM, Paul Rubin <no.email at nospam.invalid> wrote:

> Cem Karan <cfkaran2 at gmail.com> writes:
>> Can you give examples of how it's not reliable?
> 
> Basically there's a chance of it leaking memory by mistaking a data word
> for a pointer.  This is unlikely to happen by accident and usually
> inconsequential if it does happen, but maybe there could be malicious
> data that makes it happen

Got it, thank you.  My processes will run for 1-2 weeks at a time, so I can handle minor memory leaks over that time without too much trouble.

> Also, it's a non-compacting gc that has to touch all the garbage as it
> sweeps, not a reliability issue per se, but not great for performance
> especially in large, long-running systems.

I'm not too sure how much of performance impact that will have.  My code generates a very large number of tiny, short-lived objects at a fairly high rate of speed throughout its lifetime.  At least in the last iteration of the code, garbage collection consumed less than 1% of the total runtime.  Maybe this is something that needs to be done and profiled to see how well it works?

> It's brilliant though.  It's one of those things that seemingly can't
> possibly work, but it turns out to be quite effective.

Agreed!  I **still** can't figure out how they managed to do it, it really does look like it shouldn't work at all!

Thanks,
Cem Karan


More information about the Python-list mailing list