JIT

JIT

Just In Time

Ondřej Žára, Seznam.cz

Bojový plán

  1. Píšeme vlastní interpret JS
  2. JIT a jeho koncepty
  3. Ladění V8 v Chrome

Píšeme vlastní interpret JS

Jak naimplementovat JS?

var str = "var x = (a+b)*3;";
var tokens = tokenize(str);
var tree = build_ast(tokens);
process_tree(tree);

Obrázek

Jak naimplementovat JS?

var process_tree = function(tree) {
	var node = find_first_node(tree);
	process_node(node);
}

var process_node = function(node) {
	switch (node.type) {
		case "var": ...
		case "plus": ...
		case "assign": ...
		...
	}
}

Jak naimplementovat JS?

case "var":
	switch (node.varType) {
		case "string": ...
		case "number": ...
		case "function": ...
	}
break;

JIT a jeho koncepty

Jak je to s výkonem?

Jak je to s výkonem?

Just In Time Compilation

JIT: terminologie

JIT: kdo to umí?

JIT: jak mu vyjít vstříc?

Ladění V8 v Chrome

Ladění V8 v Chrome

Ladění V8 v Chrome: ukázka

JIT: další čtení

Prostor pro otázky
Ondřej Žára, Webmaster, ondrej.zara@firma.seznam.cz