forked from GHScan/TechNotes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1.html
23 lines (22 loc) · 1.92 KB
/
1.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
</head>
<ul>
<li>5. token-threading, direct-threading对比switch-threading的一个优势</li>
<li style="list-style: none; display: inline">
<ul>
<li><span style="font-family: Simsun;"> Either every virtual machine instruction routine has a copy of NEXT at the end, or they share one copy of NEXT and jump to it. With modern processors, the shared NEXT not only costs a jump, but also dramatically increases the misprediction rate of the indirect jump on CPUs with BTBs(branch target buffer) and similar indirect branch predictors [</span><a href="http://www.complang.tuwien.ac.at/forth/threaded-code.html#jilp" style="font-family: Simsun;" target="_blank">ertl&gregg03jilp</a><span style="font-family: Simsun;">]. Therefore, I recommend not to share NEXT.</span></li>
<li><span style="font-family: Simsun;">call-threading -> switch-threading -> replicate-switch-threading(case & goto label) -> token-threading(computed goto) -> direct-threading(computed goto & translation) -> subroutine-threading --inline--> JIT</span></li>
</ul>
</li>
<li><font face="Simsun">5. v8 engine: inline-caching, hiden-class</font></li>
<li style="list-style: none; display: inline">
<ul>
<li><font face="Simsun">hiden-class: map translation, object layout</font></li>
<li><font face="Simsun">inline-caching: for property access, for method call. including monomorphic callsite, polymorphic/megamorphic callsite eg.</font></li>
<li><font face="Simsun">type feedback: crankshaft use type feedback from full-compiler's IC to do type specific optimization. eliminate some range checking, type checking</font></li>
<li><font face="Simsun">full-compiler (baseline compiler) use counter-based profiler to detect the hotspot</font></li>
</ul>
</li>
<li><font face="Simsun">14. heredoc, hereis, here-string<span style="-evernote-last-insertion-point:true;"></span></font></li>
</ul>