A JVM Does That?

Поделиться
HTML-код
  • Опубликовано: 4 апр 2011
  • Google Tech Talk (more info below)
    March 29, 2011
    Presented by Cliff Click, Azul Systems.
    ABSTRACT
    Just what the heck is a JVM supposed to do? JVMs already provide a host of services. The 'J' part definitely slants the service selection and the 'V' part means that underneath the illusion there's a lot of really cruddy stuff. The success of these illusions has led to the real popularity of JVMs. In particular, JVMs are probably the most popular way to distribute ready-to-use GC technology to the masses, and the 2nd most popular way to distribute ready-to-use compilation technology (just behind "gcc" I'm guessing).
    Just what are these illusions? The illusion that bytecodes are fast and have a reasonable cost model : (machine code generation, profiling, JIT'ing). The illusion that you can quickly change the program at any time (dynamic class loading, deoptimization, re-JIT'ing). The illusion of infinite memory (Garbage Collection). The illusion of a consistent threading and memory model (the JMM, volatiles, locks). The illusion of quick time access (i.e. Intel's "rdtsc" is mostly useless for time). The illusion that these other illusions all work on all sorts of machines from cell phones to 1000-cpu mainframes (it's kinda sorta mostly true).
    But these are not enough! The People cry out for more illusions! The illusion of an Infinite Stack (tail recursion), the illusion that running-code-is-data (closures), the illusion that Integers are as cheap as 'ints' (autoboxing optimizations), or that BigIntegers are as cheap as 'ints' (tagged ints), the illusion that memory supports atomic update (software transactional memory), or the illusion that with enough hard work other language implementation experts can make a JVM run utterly different languages (invokedynamic). Meanwhile, JVM engineers labor under the illusion that they can maintain this giant piggy pile of code, and maybe even expand the provided services without it collapsing under it's own weight.
    Here's my take on what services could & should be provided by a JVM, what services probably belong to the next layer up (STMs, new concurrency models), and what services belong to the next layer down (fast time management, sane thread scheduling).
  • НаукаНаука

Комментарии • 19

  • @blenderpanzi
    @blenderpanzi 13 лет назад

    When he says that bytecodes have shortcomeings, does he mean stack based bytecode or bytecode in general?

  • @OverG88
    @OverG88 11 лет назад

    Nice Java EE tutorials, I subbed. :)

  • @RyanChristianson
    @RyanChristianson 13 лет назад

    I understood nothing about this but I appreciate your knowledge nonetheless.

  • @tohopes
    @tohopes 13 лет назад

    29:30 Good explanation of the problem with relying on fnalizers and garbage collection to release resources.

  • @Djazeiry
    @Djazeiry 10 лет назад +2

    why can't google buy this company and their JVM :P

  • @googlewen
    @googlewen 13 лет назад

    good talks

  • @jaapweel1
    @jaapweel1 11 лет назад

    "static in a dynamic sense" ;-)

  • @fnyklr
    @fnyklr 13 лет назад

    drinking game: drink a shot every time he says jadajadajada...

  • @KennethYounger
    @KennethYounger 9 лет назад

    "light only goes so fast" hah

  • @inanme
    @inanme 11 лет назад

    or JIT :D

  • @JulienBertozzi
    @JulienBertozzi 10 лет назад +1

    Awesome talk but seriously, you could improve the sound before uploading it.

  • @Pxtl1
    @Pxtl1 13 лет назад +1

    @jnores He talks just fine. You think too slow.

  • @SnipselOtter
    @SnipselOtter 11 лет назад

    It's to compensate for Java.

  • @Stachtube
    @Stachtube 13 лет назад

    @tremgaming If you can take five shots in an hour and not be drunk, you might need to cut back a little.

  • @berlinbrown03
    @berlinbrown03 13 лет назад

    How do get information on this stuff?

  • @ChilapaOfTheAmazons
    @ChilapaOfTheAmazons 13 лет назад

    The JVMs wouldn't be so bad if it weren't for the little dirt details that the vast majority of them is used to run code written by Java developers in love with design patterns and completely detached from reality.
    Just saying...

  • @TravelWorld1
    @TravelWorld1 11 лет назад

    Talks very fast...Slow down man,

  • @jnores
    @jnores 13 лет назад +1

    The content is fine, but this guy talks way too fast.

  • @arthurvin2937
    @arthurvin2937 11 лет назад

    interesting information, but boring presentation