Journey to the Centre of the JVM - Daniel Spiewak

Поділитися
Вставка
  • Опубліковано 4 лип 2024
  • What do you do when your quest for power leads you to implementations which are not just platform-but processor- and even architecture-version-specific in nature? How do you even start tracking down a bug in a Scala-based implementation which is not only nondeterministic, but only manifests on certain hardware?
    In this talk, we will dive into the wild and ill-understood world of CPU architecture, memory models, and JVM intrinsics (all through the lens of very high-level purely functional abstractions!) as we examine the story of the most convoluted and mind-bending bug hunt of my entire career.
    --------------------------------------------
    Philly Emerging Technologies for the Enterprise (ETE) is hosted yearly by Chariot Solutions. You can visit our website at chariotsolutions.com/
    We're hiring! Come work with our talented team of developers: visit our careers page for open positions, interview process, benefits, and more. chariotsolutions.com/careers/...
  • Наука та технологія

КОМЕНТАРІ • 14

  • @MrRobmango
    @MrRobmango 2 роки тому +2

    Awesome talk, I want to send it to my Architecture prof from school.

  • @ThePyroJoke
    @ThePyroJoke 2 роки тому

    Amazing! Thank you for the talk!

  • @PrzemysawElias
    @PrzemysawElias 2 роки тому +1

    Brilliant solution

  • @miklaop
    @miklaop 2 роки тому +1

    Awesome talk, thank you¡

  • @EricKolotyluk
    @EricKolotyluk 2 роки тому

    Freak'n awesome story... what an adventure...

  • @TheSunscratch
    @TheSunscratch 2 роки тому +1

    Very interesting talk, and very non trivial issue.

  • @amislouma
    @amislouma Рік тому

    Great talk

  • @JakobJenkov
    @JakobJenkov 2 роки тому +1

    What... ?!? ... no thumbs down yet? ... let me help ya.... ;-) Nah - just kidding - this video deserves a fat thumbs UP ! :-D
    BTW the language D is also a low level programming language and it's super-well designed too! Looking forward to compile D to LLVM and call it from Java in the GraalVM !

  • @ikucuk
    @ikucuk 2 роки тому

    As soon as I see the code, I suspected not specifiying cancel volitile will be the issue, in JVM it is very risky to rely on side effects of other instructions.

  • @SwarangaSarma
    @SwarangaSarma 2 роки тому +1

    Excellent talk. Really enjoyed it. Why do you say it improved performance though? GAS will always do an unconditional write so comparatively it should be a teeny tiny bit slower, no?

    • @PauldeVrieze
      @PauldeVrieze 2 роки тому

      As long as you don't read it sooner the propagation of the write can happen while other instructions are processed.

  • @PickingBlueberries
    @PickingBlueberries 2 роки тому +1

    at 17:45 I think thread 3 may also see a == 2.

    • @greneroom
      @greneroom 2 роки тому

      I agree -- I think println(1), println(2), or no console output are all valid program outputs. println(0) is not valid

  • @laughingvampire7555
    @laughingvampire7555 11 місяців тому

    JVM the worst thing that could ever happen to humanity, right after C++