Compare commits
3 commits
de48b650b1
...
305924d726
Author | SHA1 | Date | |
---|---|---|---|
Théophile Bastian | 305924d726 | ||
Théophile Bastian | 3bb22e9cbf | ||
Théophile Bastian | f6798ea678 |
9
Makefile
9
Makefile
|
@ -1,6 +1,9 @@
|
|||
TEX=slides.tex
|
||||
all: $(TEX)
|
||||
pdflatex $(TEX)
|
||||
pdflatex $(TEX)
|
||||
|
||||
all: $(TEX:.tex=.pdf)
|
||||
|
||||
%.pdf: %.tex
|
||||
latexmk -pdf $<
|
||||
|
||||
upload-tobast: $(TEX:.tex=.pdf)
|
||||
scp slides.pdf www.tobast:~/tobast.fr/public_html/m2/absint/slides.pdf
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
\usepackage{hyperref}
|
||||
\usepackage{xcolor}
|
||||
|
||||
\definecolor{link_blue}{RGB}{0,0,97}
|
||||
|
||||
\hypersetup{
|
||||
% bookmarks=true, % show bookmarks bar?
|
||||
% unicode=false, % non-Latin characters in Acrobat’s bookmarks
|
||||
% pdftoolbar=true, % show Acrobat’s toolbar?
|
||||
% pdfmenubar=true, % show Acrobat’s menu?
|
||||
% pdffitwindow=false, % window fit to page when opened
|
||||
% pdfstartview={FitH}, % fits the width of the page to the window
|
||||
% pdftitle={My title}, % title
|
||||
% pdfauthor={Author}, % author
|
||||
% pdfsubject={Subject}, % subject of the document
|
||||
% pdfcreator={Creator}, % creator of the document
|
||||
% pdfproducer={Producer}, % producer of the document
|
||||
% pdfkeywords={keyword1} {key2} {key3}, % list of keywords
|
||||
% pdfnewwindow=true, % links in new PDF window
|
||||
colorlinks=true, % false: boxed links; true: colored links
|
||||
linkcolor=link_blue, % color of internal links (change box color with linkbordercolor)
|
||||
citecolor=green, % color of links to bibliography
|
||||
filecolor=magenta, % color of file links
|
||||
urlcolor=link_blue % color of external links
|
||||
}
|
55
slides.tex
55
slides.tex
|
@ -1,6 +1,6 @@
|
|||
% vim: spell spelllang=en
|
||||
|
||||
\documentclass[11pt]{beamer}
|
||||
\documentclass[11pt,xcolor={usenames,dvipsnames}]{beamer}
|
||||
\usetheme{Warsaw}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[english]{babel}
|
||||
|
@ -10,8 +10,8 @@
|
|||
\usepackage{amssymb}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{my_listings}
|
||||
\usepackage{my_hyperref}
|
||||
\usepackage{math}
|
||||
\usepackage{tikz}
|
||||
\setbeamertemplate{navigation symbols}{}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -30,12 +30,59 @@
|
|||
Slides: \url{https://tiny.tobast.fr/m2-absint-slides} \\
|
||||
Article: \url{https://tiny.tobast.fr/m2-absint-article}
|
||||
|
||||
\tableofcontents
|
||||
%\tableofcontents
|
||||
\end{frame}
|
||||
|
||||
%\begin{frame}
|
||||
%\tableofcontents
|
||||
%\end{frame}
|
||||
|
||||
\end{document}
|
||||
\section{Just-In-Time compilation}
|
||||
|
||||
\begin{frame}{Just-In-Time (JIT) compilation}
|
||||
\begin{itemize}
|
||||
\item Dynamic languages: \alert{hard to compile} (rely on runtime)
|
||||
\item Yet \alert{ubiquitous}: javascript, python, \ldots
|
||||
\item Idea: compile \alert{at runtime} the \alert{most used} program
|
||||
parts
|
||||
\item Used in browsers (JS), PyPy (Python), most JVMs (Java), \ldots
|
||||
\end{itemize}
|
||||
|
||||
\vspace{1em}
|
||||
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[xscale=0.6, fill=GreenYellow]
|
||||
\fill (-8, 0) rectangle (-4, 2)
|
||||
node[pos=.5] {Source code};
|
||||
\fill (-2, 0) rectangle (2, 2)
|
||||
node[pos=.5] {Byte code};
|
||||
\fill (4, 0) rectangle (8, 2)
|
||||
node[pos=.5, align=center] {Byte/machine\\code};
|
||||
|
||||
\draw[->, line width=2] (-4,1) -- (-2,1);
|
||||
\draw[->, line width=2] (2,1) -- (4,1);
|
||||
\node [rotate=60, anchor=west] at (-3.75, 1.1) {Bytecode compiler};
|
||||
\node [rotate=60, anchor=west] at (2.25, 1.1) {JIT compiler};
|
||||
|
||||
\draw[RubineRed, line width=1] (0, 2) -- (0, 4);
|
||||
\draw[RubineRed, line width=1, dotted] (0, 0) -- (0, 2);
|
||||
\draw[RubineRed, line width=1] (0, -0.2) -- (0, 0);
|
||||
|
||||
\node [rotate=90, anchor=south, RubineRed] at (-0.1, 3) {Offline};
|
||||
\node [rotate=-90, anchor=south, RubineRed] at (0.1, 3) {Runtime};
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{How is it done?}
|
||||
\begin{itemize}
|
||||
\item \textit{Article claim}: mostly done using \alert{hot paths}
|
||||
within loops (in a single function); most speedup is \alert{type
|
||||
specialization}.
|
||||
\item Wrong. But, heh. (Inlining, translation to machine code, global
|
||||
optimizations, lock elimination, non-volatile-write
|
||||
elimination/propagation, \ldots)
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\end{document}
|
||||
|
|
Loading…
Reference in a new issue