JP
Upload

This video is unavailable.

Google I/O 2010 - A JIT Compiler for Android's Dalvik VM

GoogleDevelopers GoogleDevelopers·2,135 videos
344,600

Subscription preferences

Loading...

Loading icon Loading...

Working...
40,852
Like     Dislike 4

Sign in to YouTube

Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to like GoogleDevelopers's video.

Sign in to YouTube

Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to dislike GoogleDevelopers's video.

Sign in to YouTube

Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to add GoogleDevelopers's video to your playlist.

Uploaded on May 27, 2010

Google I/O 2010 - A JIT Compiler for Android's Dalvik VM

Android 301

Ben Cheng, Bill Buzbee

In this session we will outline the design of a JIT Compiler suitable for embedded Android devices. Topics will include an architectural overview, the rationale for design decisions and the special support for JIT verification, testing and tuning.

For all I/O 2010 sessions, please go to http://code.google.com/events/io/2010...

Loading icon Loading...

Loading icon Loading...

Loading icon Loading...

The interactive transcript could not be loaded.

Loading icon Loading...

Loading icon Loading...

Ratings have been disabled for this video.
Rating is available when the video has been rented.
This feature is not available right now. Please try again later.

All Comments (25)

Sign in now to post a comment!
  • alexgrinkov

    By call overhead I mean the actual overhead to call a function. I don't know how ARM processors or whatever Android runs on work, but on x86, to call a function, you need to establish a stack frame by moving registers around, by pushing required arguments in stack, by saving caller-saved registers used at the point of function call, by performing a jump and then after the call, you destruct the frame, and jump back... And all of this can be done using 1 vectorized instruction.

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate alexgrinkov's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate alexgrinkov's comment.
    in reply to SharifAjmal (Show the comment)
  • SharifAjmal

    I haven't programmed in Java in ages, so I don't remember exactly how this works, but I know there was some sort of pass-by-reference-esque thing you an do... (I think you just wrap the contents of the stuff in an object or something.) So the only overhead is creating the activation record. (Negligible relative to the work the function will do for you.)

    I should probably try to write some Java again at some point. :p

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate SharifAjmal's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate SharifAjmal's comment.
    in reply to alexgrinkov (Show the comment)
  • alexgrinkov

    But games require lots of matrix/vector math. There's a lot of overhead to call functions to do, for example, vector multiplication instead of doing it inline in native code.

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate alexgrinkov's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate alexgrinkov's comment.
    in reply to SharifAjmal (Show the comment)
  • alexgrinkov

    "ask questions on Google Wave"

    haha

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate alexgrinkov's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate alexgrinkov's comment.
  • SharifAjmal

    So if you're running something like a game that depends heavily on library code, you're not gonna get much of a performance boost from your translation cache... But you're also not gonna get much of a slowdown either (relative to purely native code); most of your time will be spent in library code, which is already compiled native. So there's not much translation overhead. (Plus the Dalvik interpreter was already twice as fast as the JVM interpreter; probably even faster now.)

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate SharifAjmal's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate SharifAjmal's comment.
    in reply to deathxblade (Show the comment)
  • deathxblade

    So your saying its taking away CPU resources? But WITHOUT JIT you will have the interpreter taking up CPU resources. The only time JIT is bad is when all of your code is already in native code, which maybe you are thinking of since many 3D graphic libraries might be all in native code? Not sure.

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate deathxblade's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate deathxblade's comment.
    in reply to VoLtrex31 (Show the comment)
  • VoLtrex31

    3D intense software such as video games .

    your CPU will have to do 2 tasks - 1 is to load data as you play.

    2 to process the game.

    while when JIT is turned off you will first load 100% of the game data and "Then" your CPU will Only process the game .

    as for Quad CPU then the CPU can do it both with out much issues.

    hope i made it more clear. i do not claim this information is right- IMO.

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate VoLtrex31's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate VoLtrex31's comment.
    in reply to deathxblade (Show the comment)
  • deathxblade

    Your comment doesn't really make sense. What about "high end" programs make it run slower with JIT on?

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate deathxblade's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate deathxblade's comment.
    in reply to VoLtrex31 (Show the comment)
  • Graham Steffaniak

    5:21 "its really a smallish amount of code"

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Graham Steffaniak's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Graham Steffaniak's comment.
  • Loading comment...
Loading...
Loading...
Working...
Sign in to add this to Watch Later