Pivotal Labs

Main menu

Skip to primary content
Skip to secondary content
  • About
  • Case Studies
  • Team
    • Executives
    • Locations
      • San Francisco (HQ)
      • Boston
      • Boulder
      • Denver
      • London
      • Los Angeles
      • New York
  • Community
    • Blogs
    • Tech Talks
    • Events
  • Careers
    • Lifestyle
    • Principles & Practices
    • Benefits
    • FAQ
    • Apply
  • Contact
    • Press Room
    • Press Releases
    • In The News
    • Press Kit
  • All
  • Labs
  • Standup
  • Tracker

Standup 11/12/2009: Global method cache invalidation

Tyler Schultz
Thursday, November 12, 2009

Interesting Thing

  • Dynamic use of Object#extend at runtime invalidates the global method cache, causing performance degradations. Consider a design that makes use of extend at class parse time. Here’s a slide deck that explains in detail:
    What Makes Ruby Go
  • 0 Shares
  • Share on Facebook
  • Share on Twitter

One comment

  1. Mark Wilden says:

    The slide deck is deeply unconvincing.

    The authors compare running a standard benchmark with and without method caching. But Object#extend doesn’t turn off method caching for all time–just once for each method.

    Then they call Object#extend six million times in a tight loop. If you’re writing code like that, then you’ve got far bigger problems than method caching.

    They don’t actually present any real-world situation to support the impression that Object#extend should be avoided for performance reasons.

    That said, the slides were very interesting, and other points they make further on do have practical applications.

    November 12, 2009 at 8:42 pm

Add New Comment Cancel reply

Your email address will not be published.

Tyler Schultz

Tyler Schultz
San Francisco

Recent Posts

  • [Standup][SF] 09/21/12: Get older faster
  • Ah, ah, ah. Now, that was silly. Wouldn’t you agree, my bats? Ah, ah, ah.
  • [SF][Standup] 09/19/12: ActiveAdmin vs. RailsAdmin… Arrrggg!
Subscribe to Tyler's Feed

Author Topics

rails (5)
time (2)
css (1)
heroku (2)
javascript (1)
activerecord (1)
android (3)
robolectric (1)
tdd (1)
agile (7)
amazon (1)
default scope (1)
hudson (1)
rspec (1)
  • About
  • Case Studies
  • Team
  • Community
  • Careers
  • Contact
  • Labs
  • Events

Contact Us

contact@pivotallabs.com
+1 415-77-PIVOT
TwitterLinkedInFacebook

Pivotal Tracker

Tracker is the award-winning agile project management tool that enables real-time collaboration around a shared, prioritized backlog.
Visit pivotaltracker.com >