BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Presentation: Conceptual Algorithms

Presentation: Conceptual Algorithms

Bookmarks

In this talk from RubyFringe, Tom Preston-Werner, one of the founders of GitHub, talks about "Conceptual Algorithms".

Tom walks us through a problem he encountered while writing the god tool. The Ruby process running god was leaking memory - for no obvious reason. Tom explains how he methodically explored the problem and tracked down the source of the problem. (Spoiler: it was a sneaky problem in the Ruby interpreter).

Tom finishes up by explaining his reasons to chose projects, and what he considers the "deathbed filter".

Watch Tom Preston-Werner on "Conceptual Algorithms".

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Entertaining talk

    by Markus Kohler,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    It's a little bit shocking how difficult it is in Ruby to analyze memory leaks.
    Analyzing memory leaks is easy in Java (Eclipse Memory Analyzer).
    Analyzing memory usage is much more difficult, but still can be done with MAT. Check my blogs posts

  • Re: Entertaining talk

    by Werner Schuster,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I'm not so sure - the memory leak Tom's talking about is a leak in the Ruby interpreter not an application leak.
    There are a bunch of leaks - although recently a fix for many of them was found:
    www.infoq.com/news/2009/01/ruby-patches-fix-leaks
    (turns out it was naughty GCC + the conservative Ruby GC).

    For the nice kind of memory leak (the self-inflicted one in user code) Ruby doesn't need outside tools since it can look at the objects in the heap and iterate over the reachable ones. Eg here's a simple homegrown profiler using ObjectSpace:
    scottstuff.net/blog/articles/2006/08/17/memory-...

    Obviously - you'll still need some of the algorithms for analyzing the object graph and figuring out what might be a memory leak or not, and tools like MAT have these of course.

  • Wau!!!

    by Jure Srsen,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Thanks a lot for this presentation, Tom!
    I would listen to audio versions of this in a regular podcast :)
    Jure Sršen

  • Re: Entertaining talk

    by Markus Kohler,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Sure that was a leak caused by the GC not working correctly.
    I never heard of such a bug in the JVM GC within the last 9 years.

    You typically need an external tool, because if you don't have enough memory anymore you cannot use additional memory within the same process.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT