Virtual Machines Summer School 2016
What I learned from LuaJIT

This talk summarizes my experience from digging into LuaJIT 2.x sources while working as a compiler engineer for Google DeepMind.

This is not a deep insight into LuaJIT inner design, but rather a collection of choices made by original LuaJIT implementor which I find interesting and educational.

GOTO Chicago 2015
Benchmarking JavaScript

JavaScript is everywhere. JavaScript VMs improve by leaps and bounds. Performance graphs are breaking through the ceilings of expectations.

And yet from time to time we still find ourselves wondering whether '===' is faster than '=='.

What is the right way to approach this question? Is this the question you should be asking to begin with?

We will take a look at some microbenchmarks written by JS developers and discover a violent clash between XIX century approach to benchmarking and XXI century virtual machines.

Aarhus University — AWP 2014
Overview of V8 compilation pipeline. Guest lecture at Aarhus University Advanced Web Programming course.
JSConf EU 2014

The apple always falls down attracted by the gravity of the earth. It’s the law of physics. The function is never inlined if it’s source is bigger than 600 characters long. It’s a heuristic - a physical law of our dystopian cyber-world confined inside a JavaScript Virtual Machine.

Ever wanted to rebel against the sad immutability of the physics? Lets try to make functions fall upwards and inline all the apples.

In an ultimate attempt to create a space-time paradox that will rip our universe apart we will look at Java programmers implementing JavaScript on JVM through invokedynamic and then will implement invokedynamic in a JS VM instead.

The true freedom is just one heuristic away..

Handcrafting VMs for dynamic languages: reality and dreams
This is a story of what happens when the art of VM construction meets development constraints. This is a first-person narrative about my experience with the V8 and Dart virtual machines, fundamental engineering decisions, and their implications. I will try to show how production VMs are treading the thin line between "practical reality" and "dreams of academia". Finally I intend to share my own dreams on how ideas borrowed from academia could help to solve practical issues in VM-construction.
WebRebels 2014
Crooked Mirrors of Performance
This is a fairy tale of programmer traveling through the strange land of microbenchmarks. Are they reflecting the truth, lies or maybe something in between? We will shatter the illusions and look behind their surface to reveal the fundamental truth: it's easier to spot a bad microbenchmark, than write a good one.
CodeFest 2014
Что за... Dart?
Introduction to Dart (in Russian).
TechTalks NSU 2014
V8 & Dart VM
Overview of Dart VM and V8 compilation pipelines (in Russian). Slide deck built from CWP and Strange Loop ones (see below).
Dart Flight School Oslo (February 2014)
Dart VM Compiler
Overview of Dart VM optimizing compiler.
Dart Flight School Oslo (February 2014)
Introduction to AngularDart.
Aarhus University — CWP 2013
Overview of V8 compilation pipeline. Guest lecture at Aarhus University Client-Based Web Programming course.
LXJS 2013
Doubt Everything
This talks walks the listener through various optimizing compiler related pitfalls in microbenchmarking. Greatly inspired by microbenchmarks found on jsPerf.
StrangeLoop 2013
Building Optimizing Compiler for Dart
The talk describes Dart VM's compilation pipeline, its similarities and differences from V8's approach.
JSConf EU 2012
Exploring JS VM in JS
The talk explores building blocks which could be used to write parts of JavaScript VMs in JavaScript.
Форум Технологий Mail.Ru Group 2012
JavaScript глазами JIT компилятора
Walk through V8's implementation details and the ways they might affect performance of your JavaScript code (in Russian).
Web Rebels 2012
V8 Inside Out
An attempt to explain how inline caches and optimizing compilation works using (mostly) only JavaScript on the slides.
JSConf US 2012
Can V8 Do That?!
Quick walk through the ideas behind V8's optimizing compilation pipeline (aka Crankshaft).
nodecampeu 2011
Understanding V8
Walk through V8's implementation details and performance tuning recommendations for JavaScript code.