HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

A JVM Does That?

Google TechTalks4 HN recommenders · recommended in 5 months, 2011-2017
YouTube
80K views · 15 years ago · talk · evergreen

Cliff Click of Azul Systems asks what a JVM is supposed to do, in a Google Tech Talk from 2011. He covers the services a JVM provides, such as garbage collection and compilation, and the messy reality beneath the abstractions.

A repeated recommendation for anyone interested in VMs, with Click's talks regarded as unusually informative on JVMs, JITs and the user/kernel boundary.

Compilers, interpreters & program analysisPython, Ruby & scripting languages#jvm#garbagecollection#jitcompilation#cliffclick#azul

8 comments from Hacker News

@qznc2017 · in “The “high-level CPU” challenge (2008)”

There is a fascinating talk by Cliff Click "A JVM Does That?" At the end he shares some opinion about what should be done by JVM or OS and what should change. video: ▶ this video slides: link I remember a talk, where he was also talking about hardware. It does not seem to be this one. For example, a time register would be useful. Syscalls like clock_gettime are too slow. CPU info like cycle counts fail with dynamic frequency scaling.

RecommendsView on HN
@x0x02016 · in “Ask HN: What's your favorite tech talk?”

Cliff Click was the jvm architect at sun then spent a decade at azul systems as their jvm architect. The talk is "A JVM Does That?" It's well worth watching if you are interested in vms at all. ▶ this video

Strongly recommendsView on HN
@xxs2015 · in “Chris Lattner on Swift and dynamic dispatch”

JITs do know the call target. This is a quote from "A JVM does that?"[0]: C++ avoids virtual calls – because they are slow ● Java embraces them – and makes them fast ● Well, mostly fast – JIT's do Class Hierarchy Analysis ● CHA turns most virtual calls into static calls ● JVM detects new classes loaded, adjusts CHA – May need to re-JIT ● When CHA fails to make the call static, inline caches ● When IC's fail, virtual calls are back to being slow ---- There are several misconception about Java in the write-up. The real reason there won't be a bootloader is the need for the Java runtime and the need to GC. Unoptimized virtual calls won't affect any bootloader for that matter (and you can/should use static and/or private methods for the inner loops) [0]: ▶ this video

CitesView on HN
@btrask2015 · in “Linux futex_wait() bug – update to latest patches now”

I'm not part of the Java world at all, but I'm starting to think that Azul Systems is one of the few groups of people who know what they're doing with regard to Linux performance and the user/kernel boundary. I recently watched some talks by Cliff Click[1] that were extremely informative, and from what I understand about their proposed kernel patches, they seem like important improvements. This report by Gil Tene (their CTO according to Wikipedia) lends more support to that theory. [1] ▶ this video

RecommendsView on HN
@pron2015 · in “JVM Internals (2013)”

Well, LLVM is something else altogether, as it doesn't try to abstract away the OS, while the JVM does[1]. As to the JVM, well, first of all, there is no "the JVM". There are many JVMs by many vendors, and many types of JVMs (from smart-cards, through various embedded devices, and all the way to desktops, servers and mainframes). Some of the most interesting -- and most important -- ones are made by companies you've probably never heard of, like Aicas and Atego that make hard realtime JVMs for use in avionics, medical devices and other safety-critical systems. The best-known JVMs are HotSpot, OpenJDK's JVM (which serves as the basis for Oracle and Azul's JVMs) and J9, IBM's JVM. When many people say "the JVM" they mean the SE (i.e. "standard edition") of HotSpot. While HotSpot and the CLR are more similar -- at least in their goals -- than different, and each is ahead of the other in some respects and behind in others, I'd say that the most interesting features of HotSpot are its JIT and GCs (it comes with a few) that are years ahead of anything else used in any other environment in the industry (well, except Azul that sells a modified HotSpot with a "pauseless" GC that never pauses the application for more than a few microseconds). In my opinion, the most exciting development regarding HotSpot is the work being done on HotSpot's next generation optimizing JIT called Graal, that comes with an a complementary language toolkit called Truffle[2]. It pushes the envelopes further

CitesView on HN
@Alupis2015 · in “Peter Lawrey Describes Petabyte JVMs”

There are some interesting challenging when scaling this large with any system. Peter referenced some of Azul System's stuff and their custom GC. Cliff Click from Azul has done some great Google Tech Talks about JVM development and scaling JVM's out to really big systems.[1][2] [1] A JVM Does That? - ▶ this video [2] Java on a 1000 Cores - link

RecommendsView on HN
@qznc2013 · in “Ask HN: What's the best technical talk you've heard?”

Probably this one: link Anything from Cliff Click is quite good. This guy has a very deep understanding of compilers, virtual-machines, CPUs, and their interactions. A JVM does that? ▶ this video Java on a 1000 Cores link

RecommendsView on HN
@skorgu2011 · in “Linus Torvalds on Garbage Collection (2002)”

IBM's Metronome[1] advertises maximum pause times in the hundreds of micro seconds range. Cliff Click[2] cites a 10MB max heap for it so definitely not a cure-all but definitely something I'd like to play around with. [1] link [2] ▶ this video

CitesView on HN
Java on a 1000 Cores - Tales of Hardware / Software CoDesign1:12:02

Java on a 1000 Cores - Tales of Hardware / Software CoDesign

Google TechTalks
23K views • 17 years ago
Cliff Click @ VMSS16: Bits of Advice For the VM Writer1:15:09

Cliff Click @ VMSS16: Bits of Advice For the VM Writer

softdevteamuk
4K views • 10 years ago
JVMLS 2015 - Java Goes AOT40:50

JVMLS 2015 - Java Goes AOT

Java
8K views • 11 years ago
Demo: Base language, compile-time execution2:07:18

Demo: Base language, compile-time execution

Jonathan Blow
164K views • 12 years ago
JVMLS 2015 - Compilers are Databases1:08:52

JVMLS 2015 - Compilers are Databases

Java
16K views • 11 years ago
Let's prototype a JavaScript JIT compiler!1:21:25

Let's prototype a JavaScript JIT compiler!

Andreas Kling
49K views • 3 years ago
Chris Seaton @ VMSS16: JRuby+Truffle: Why it’s Important to Optimise the Tricky Parts1:02:44

Chris Seaton @ VMSS16: JRuby+Truffle: Why it’s Important to Optimise the Tricky Parts

softdevteamuk
5K views • 10 years ago
Compiling and Optimizing Scripting Languages1:01:37

Compiling and Optimizing Scripting Languages

Google TechTalks
21K views • 17 years ago
Twitter’s Quest for a Wholly Graal Runtime by Chris Thalinger50:11

Twitter’s Quest for a Wholly Graal Runtime by Chris Thalinger

Scala Days Conferences
3K views • 8 years ago
Building Your Own Dynamic Language1:14:32

Building Your Own Dynamic Language

Stanford
21K views • 18 years ago
Brandt Bucher – A JIT Compiler for CPython47:51

Brandt Bucher – A JIT Compiler for CPython

encukou
14K views • 2 years ago
Google I/O 2008 - Dalvik Virtual Machine Internals1:01:34

Google I/O 2008 - Dalvik Virtual Machine Internals

Google for Developers
188K views • 18 years ago
"Programming Should Eat Itself" by Nada Amin47:41

"Programming Should Eat Itself" by Nada Amin

Strange Loop Conference
43K views • 12 years ago
Javascript in 201510:32

Javascript in 2015

Glen Maddern
58K views • 11 years ago
The Go Programming Language59:26

The Go Programming Language

Google TechTalks
406K views • 17 years ago
Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated1:13:00

Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated

LambdaConf
241K views • 1 year ago
Mojo Lang - Tomorrow's High Performance Python? (with Chris Lattner)1:24:39

Mojo Lang - Tomorrow's High Performance Python? (with Chris Lattner)

Developer Voices
64K views • 2 years ago
2023 LLVM Dev Mtg - Mojo 🔥: A system programming language for heterogenous computing49:48

2023 LLVM Dev Mtg - Mojo 🔥: A system programming language for heterogenous computing

LLVM
61K views • 2 years ago
Miguel de Icaza: Swift Godot: Fixing the Multi-million dollar mistake  #GodotCon202354:53

Miguel de Icaza: Swift Godot: Fixing the Multi-million dollar mistake #GodotCon2023

Godot Engine
27K views • 3 years ago
Jonathan Blow on scripting languages9:30

Jonathan Blow on scripting languages

Jeru Sanders
185K views • 7 years ago