BT

InfoQ Homepage News The DLR’s Adaptive Compiler

The DLR’s Adaptive Compiler

Bookmarks

The Dynamic Language Runtime has significant performance improvements over traditional interpreters for Python and Ruby, once it is warned up. But for code you only use once or twice, it costs more to compile the expression tree than to simply interpret it.

The DLR solves this issue by introducing what they call an Adaptive Compiler. Normally the DLR will interpret expression trees instead of compiling them. If it sees a given tree is used repeatedly, then it will compile it in a background thread to be used by future calls. According to Microsoft, this is giving IronPython 2.6 a significant performance boost over earlier versions.

Because this technology is backed into the DLR, any dynamic language targeting it may opt-in for this behavior.

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

  • Benchmarks

    by Doug Winter /

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

    So, are there any benchmarks of this new DLR against the CPython implementation? It would be great to see if it really does deliver that much better performance.

  • Re: Benchmarks

    by Ex Raven /

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

    Here's a link that might be useful to you: CodePlex: IronPython Performance

  • Re: Benchmarks

    by Doug Winter /

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

    Very very mixed, if I am reading those results correctly.

    I'd generally take benchmarks with a pinch of salt, but I have to say I think they have some more work to do on the DLR yet ;)

  • Re: Benchmarks

    by Jonathan Allen /

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

    Once they have Python 2.6 compatibility, they are shifting their focus to performance. Up until now they have been playing catch-up, but they expect to have some breathing room while Python plans their 3.2 feature set.

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

Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
Country/Zone:
State/Province/Region:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.