IBM Research Debunking Dynamic Optimization Myths Michael Hind
IBM Research Debunking Dynamic Optimization Myths Michael Hind Based on PLDI’ 04 Tutorial by Fink, Grove, and Hind Feb 18, 2005 NC State Seminar © 2005 IBM Corporation
IBM Research Well-known Facts 1. Because they execute at runtime, dynamic compilers must be blazingly fast 2. Dynamic class loading is a fundamental roadblock to cross-method optimization 3. Sophisticated profiling is too expensive to perform online 4. A static compiler will always produce better code than a dynamic compiler 5. Program optimization is a dead field 6. The infrastructure investment stifles innovation in this field 2 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Well-known Facts ? ? ? 1. Because they execute at runtime, dynamic compilers must be blazingly fast 2. Dynamic class loading is a fundamental roadblock to cross-method optimization 3. Sophisticated profiling is too expensive to perform online 4. A static compiler will always produce better code than a dynamic compiler 5. Program optimization is a dead field 6. The infrastructure requirements stifles innovation in this field 3 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Terminology § Virtual Machine (for this talk): a software execution engine for a program written in a machine-independent language • Ex, Java bytecodes, CLI, Pascal p-code, Smalltalk v-code Interpreter Compiler(s) Memory Management Libraries Tracing, Profiling, etc (ex. JVMPI) Runtime Support Mechanisms Adaptive Optimization System Security Services Program Loader Thread Scheduler Dynamic type checking Introspection, etc. VM != JIT 4 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Adaptive Optimization Hall of Fame § 1958 -1962 § 1974 § 1980 -1984 § 1986 -1994 § 1995 -present 5 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Adaptive Optimization Hall of Fame § 1958 -1962: LISP § 1974: Adaptive Fortran § 1980 -1984: Parc. Place Smalltalk § 1986 -1994: Self § 1995 -present: Java 6 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Quick History of VMs § § § 7 LISP Interpreters [Mc. Carthy’ 78] • First widely used VM • Pioneered VM services – memory management, Eval -> dynamic loading Adaptive Fortran [Hansen’ 74] • First in-depth exploration of adaptive optimization • Selective optimization, models, multiple optimization levels, online profiling and control systems Parc. Place Smalltalk [Deutsch&Schiffman’ 84] • First modern VM • Introduced full-fledge JIT compiler, inline caches, native code caches • Demonstrated software-only VMs were viable NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Quick History of VMs § § 8 Self [Chambers&Ungar’ 91, Hölzle&Ungar’ 94] • Developed many advanced VM techniques • Introduced polymorphic inline caches, on-stack replacement, dynamic deoptimization, advanced selective optimization, type prediction and splitting, profile-directed inlining integrated with adaptive recompilation • Pure OO language that supports an interactive development environment • Much of the technology was transferred to Sun’s Hot. Spot JVM Java/JVM [Gosling et al ‘ 95] • First VM with mainstream market penetration • Java vendors embraced and improved Smalltalk and Self technology • Encouraged VM adoption by others -> CLR NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Other VMs in this Talk § IBM DK for Java [’ 95 - ] • Port of Sun Classic JVM with JIT, GC, and synch enhancements • World class performance § Jikes RVM (Jalapeno) [’ 97 - ] 9 • VM for Java, written in (mostly) Java • Independently developed VM + GNU Classpath libs • Open source, popular with researchers, not a full JVM NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myth 1 - Dynamic compilers must be blazingly fast Myth: Because they execute at runtime, dynamic compilers must be blazingly fast. • they cannot perform sophisticated optimizations, such as SSA, graph-coloring register allocation, inlining, etc. Reality: • Production JITs perform all the classical optimizations • Selective optimization strategies successfully focus compilation effort where needed § What is Selective Optimization? 10 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research How are Programs Executed? 1. Interpretation • Popular approach for high-level languages • – Ex, APL, SNOBOL, BCPL, Perl, Python, MATLAB Useful for memory-challenged environments • Low startup overhead, but much slower than native code execution • Compile each method to native code on first invocation 2. Classic just-in-time compilation – – – • 11 Ex, Parc. Place Smalltalk-80, Self-91 Initial high (time & space) overhead for each compilation Precludes use of sophisticated optimizations (eg. SSA, etc. ) Responsible for many of today’s myths NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Selective Optimization § Hypothesis: most execution is spent in a small pct. of methods § Idea: use two execution strategies 1. Interpreter or non-optimizing compiler 2. Full-fledged optimizing compiler • Strategy: 12 • Use option 1 for initial execution of all methods • Profile application to find “hot” subset of methods • Use option 2 on this subset NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Selective Optimization Examples § Adaptive Fortran: interpreter + 2 compilers § Self’ 93: non-optimizing + optimizing compilers § JVMs • Interpreter + compilers: Sun’s Hot. Spot, IBM DK for Java, IBM’s J 9 • Multiple compilers: Jikes RVM, Intel’s Judo/ORP, BEA’s JRocket § CLR? • Currently, only 1 runtime compiler, i. e. , a classic JIT – 13 NC State Seminar But, also use ahead-of-time (AOT) compilation February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Profiling: How to Find Candidates for Optimization § Counters § Call Stack Sampling § Combinations 14 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research How to Find Candidates for Optimization: Counters § Insert method-specific counter on method entry and loop back edge § Counts how often a method is called • approximates how much time is spent in a method • Not present in optimized code § Very popular approach: Self, Hot. Spot § Issues: overhead for incrementing counter can be significant foo ( … ) { foo. Counter++; if (foo. Counter > Threshold) { recompile( … ); }. . . } 15 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research How to Find Candidates for Optimization: Call Stack Sampling § Periodically record which method(s) are on the call stack § Approximates amount of time spent in each method § Does not necessarily need to be compiled into the code • Ex) Jikes RVM, JRocket § Issues: timer-based sampling is not deterministic A 16 NC State Seminar A B C February 18, 2005 . . . A B C Debunking Dynamic Optimization Myths A B © 2005 IBM Corporation
IBM Research How to Find Candidates for Optimization: Call Stack Sampling § Periodically record method(s) on call stack • Approximates amount of time spent in each method • Ex) Jikes RVM, JRocket § Does not necessarily need to be compiled into the code § Issues: timer-based sampling is not deterministic A A B C . . . A B C A B Sample 17 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research How to Find Candidates for Optimization: Combinations § Use counters initially and sampling later on • Ex) IBM DK for Java foo ( … ) { foo. Counter++; if (foo. Counter > Threshold) { recompile( … ); }. . . } 18 NC State Seminar February 18, 2005 A B C Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Recompilation Policies: Which Candidates to Optimize? § § Problem: given optimization candidates, which ones should be optimized? Counters: 1. Optimize method that surpasses threshold – Simple, but hard to tune, doesn’t consider context 2. Optimize method on the call stack based on inlining policies (Self, Hot. Spot) § – Addresses context issue Call Stack Sampling: 1. Optimize all methods that are sampled − Simple, but doesn’t consider frequency of sampled methods 2. Use Cost/benefit model (Jikes RVM) – – – 19 NC State Seminar Seemingly complicated, but easy to engineer Maintenance free Naturally supports multiple optimization levels February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Jikes RVM Architecture [Arnold et al. ’ 00, ‘ 04] Samples occur at taken yield points (approx 100/sec) Organizer thread communicates sampled methods to controller 20 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Jikes RVM: Recompilation Policy – Cost/Benefit Model § Define • cur, current opt level for method m • Exe(j), expected future execution time at level j • Comp(j), compilation cost at opt level j § Choose j > cur § If that minimizes Exe(j) + Comp(j) < Exe(cur) Exe(j) + Comp(j) recompile at level j § Assumptions 21 • Sample data determines how long a method has executed • Method will execute as much in the future as it has in the past • Compilation cost and speedup are offline averages NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research IBM DK for Java [Suganuma et al. ’ 01] Execution Levels (excluding Specialization) § MMI (Mixed Mode Interpreter) • Fast interpreter implemented in assembler § Quick compilation • Reduced set of optimizations for fast compilation, little inlining § Full compilation • Full optimizations only for selected hot methods § 22 Methods can progress sequentially through the levels NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Startup Programs: Jikes RVM No FDO, Mar’ 04, AIX/PPC 23 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Startup Programs: Jikes RVM No FDO, Mar’ 04, AIX/PPC 24 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Steady State: Jikes RVM No FDO, Mar’ 04, AIX/PPC 25 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Steady State: Jikes RVM, no FDO (Mar ’ 04) 26 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Execution Profile: Jikes RVM (Jul ’ 02) 27 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myth 1 - Dynamic compilers must be blazingly fast Myth: Because they execute at runtime, dynamic compilers must be blazingly fast. • they cannot perform sophisticated optimizations, such as SSA, graph-coloring register allocation, inlining, etc. Reality: 28 • Production JITs perform all the classical optimizations • Selective optimization strategies successfully focus compilation effort where needed NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Understanding System Behavior § PLDI’ 04 tutorial contains • Performance results for IBM DK for Java • Code size usage (IBM DK for Java) • Recompilation information – – 29 NC State Seminar Pct/total methods recompiled (Jikes RVM) Activity over time (Both) February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Other issues § Synchronous vs. asynchronous recompilation • Is optimization performed in the background? • Is profile data packaged or used in flight? • When to do it? • When is it safe? • Stack rewriting, code patching, etc. • How repeatable? § Static or dynamic view of profile data § Skipping optimization levels § Collecting dead compiled code § Installing new compiled code § RAS issues 30 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myth II - Dynamic class loading is a fundamental roadblock to cross-method optimization Myth: Because you never have the whole program, interprocedural optimizations are not possible ex) virtual method resolution, virtual inlining, escape analysis, etc. 31 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myth II - Dynamic class loading is a fundamental roadblock to cross-method optimization Myth: Because you never have the whole program, interprocedural optimizations are not possible ex) virtual method resolution, virtual inlining, escape analysis, etc. Reality: 32 • Can speculatively optimize with respect to current class hierarchy • Sophisticated invalidation technology well-understood; mitigates need for overly conservative assumptions • Speculative optimization can be more aggressive than conservative, static compilation NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Aggressive Speculation and Invalidation Techniques § § § 33 Speculative code generation • Generate code that would be incorrect if some condition changes • Invalidate generated code to recover if needed Why speculate? • Hard to analyze features (reflection, native code, classloading) • Heavier usage of OO language features, generic frameworks • Constraints on compilation resources How to invalidate speculative code? • On-Stack Replacement [Chambers, Hölzle&Ungar’ 91 -94, Fink&Qian’ 03] • Other approaches – Pre-existence inlining [Detlefs & Agesen’ 99] – Thin Guards [Arnold’ 02] NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Invalidation via On-Stack Replacement (OSR) Transfer execution from compiled code m 1 to compiled code m 2 even while m 1 runs on some thread's stack Extremely general mechanism minimal restrictions on speculation stack m 2 m 1 34 NC State Seminar m 2 m 1 frame PC PC February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Applications of OSR § Deferred compilation [SELF-91, Hot. Spot, Whaley 2001] • Don't compile uncommon cases • Improve dataflow optimization and reduce compile-time • Promote long-running loops to higher optimization level • At breakpoint, deoptimize activation to recover program state • Class-hierarchy-based inlining [Hot. Spot] • Type prediction [SELF-91] • Escape Analysis [Whaley 2001] § Runtime optimization of long-running activations [SELF-93] § Debug optimized code via dynamic deoptimization [HCU 92] § Safe invalidation for speculative optimization 35 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research OSR Challenges § Engineering Complexity • Need to capture/recover program state without constraining optimizations or introducing runtime overhead to the point where the optimization benefits are lost • Retro-fitting to existing systems (especially JITs) can be quite complex • Support for multi-threading, weak memory model SMPs, etc. • Code that is both complex and infrequently executed is a prime location for bugs § RAS implications 36 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myth II - Dynamic class loading is a fundamental roadblock to cross-method optimization Myth: Because you never have the whole program, interprocedural optimizations are not possible ex) virtual method resolution, virtual inlining, escape analysis, etc. Reality: 37 • Can speculatively optimize with respect to current class hierarchy • Sophisticated invalidation technology well-understood; mitigates need for overly conservative assumptions • Speculative optimization can be more aggressive than conservative, static compilation NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myth III Myth: A static compiler will give better performance than a dynamic compiler • 38 Static compiler can use an unlimited amount of analysis time NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myth III Myth: A static compiler will give better performance than a dynamic compiler • Static compiler can use an unlimited amount of analysis time Reality: 39 • Many Production JITs implement all classical static optimizations • Feedback-directed optimization can be more effective than unlimited IPA without profile information NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Feedback-Directed Optimization (FDO) § § § 40 Exploit information gathered at run-time to optimize execution • “selective optimization”: what to optimize • “FDO” : how to optimize Advantages of FDO [Smith 2000] • Can exploit dynamic information that cannot be inferred statically • System can change and revert decisions when conditions change • Runtime binding allows more flexible systems Challenges for fully automatic online FDO • Compensate for profiling overhead • Compensate for runtime transformation overhead • Account for partial profile available and changing conditions • Complexity issues NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research FDO Can Improve Performance in Long Running Applications: Jikes RVM (Mar ’ 04) (LOWER BOUND!) 41 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Common FDO Techniques § Compiler optimizations • Inlining • Code Layout • Multiversioning • Potpourri • Caching (PICs) • Speculative meta-data representations (object headers, etc) • GC Acceleration (adjusting heap, switching collectors, etc) • Locality optimizations § Run-time system optimizations 42 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research FDO Potpourri Many opportunities to use profile info during various compiler phases Almost any heuristic-based decision can be informed by profile data Examples: § Loop unrolling 43 • Unroll “hot” loops only • Spill in “cold” paths first • Move computation from hot to cold blocks • Avoid expensive runtime handlers for frequent exceptional flow • Stack allocate objects that only escape on cold paths • Profile data guides placement of prefetch instructions § Register allocation § Global code motion § Exception handling optimizations § Speculative stack allocation § Software prefetching NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Challenge: Don’t Degrade Performance Too Much When Collecting Profile Data [Arnold et al. ’ 02] 44 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myth III Myth: A static compiler will give better performance than a dynamic compiler • Static compiler can use an unlimited amount of analysis time Reality: • Many production JITs implement all classical static optimizations • Feedback-directed optimization can be more effective than unlimited IPA without profile information • Legacy C compiler backends can’t exploit type information and other semantics that JITs routinely optimize • However, ahead-of-time compilation still needed sometimes: – – 45 NC State Seminar Fast startup of large interactive apps Small footprint (e. g. embedded) devices February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myths IV Myth: Sophisticated profiling is too expensive to perform online 46 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myths IV Myth: Sophisticated profiling is too expensive to perform online Reality: 47 • Sampling-based profiling is cheap and can collect sophisticated information • e. g. IBM DK dynamic instrumentation • e. g. Arnold-Ryder full-duplication framework NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Profiling § 4 Categories • Runtime service monitors • – e. g. dispatch tables, synchronization services, GC Hardware performance monitors • – see Adl-Tabatabai et al. ’ 04 Sampling • – e. g. sample method running, call stack at context switch Program instrumentation – 48 NC State Seminar e. g. basic block counters, value profiling February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research IBM DK Profiler [Suganuma et al ’ 01, ’ 02] § Sampling • § Used to identify already compiled methods for re-optimization Dynamic instrumentation 1. Patch entry to a method with jump to instrumented version 2. Run until threshold – Time bound – Desired quantity of data collected 3. Undo patch B’s Instrumented code B’s compiled code jmp instr_code sub esp, 50 mov [esp-50], ebx 49 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Arnold-Ryder [PLDI 01]: Full Duplication Profiling Generate two copies of a method • Execute “fast path” most of the time • Jump to “slow path” occasionally to collect desired profile • Demonstrated low overhead, high accuracy, tunable • Adopted by IBM J 9 VM; aka “Bursty Tracing” [Hirzel&Chilimbi’ 01] 50 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myth V Myth: Program optimization is a dead field, law of diminishing returns 51 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myth V Myth: Program optimization is a dead field, law of diminishing returns Reality: No shortage of research topics • FDO – – – 52 • What optimizations should be performed? How should a VM use FDO? When should a VM switch from one form of FDO to another because of a program phase change? Theoretically-grounded selective optimization • Empirical optimization policies • Deep online/staged analysis • Higher-level programming models (e. g. J 2 EE, XML, Web Services, BPEL) • Resource-constrained devices (space, power …) • Dealing with the complexity of dynamic systems NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myth VI - The infrastructure requirements stifles innovation in this field Myth: Small independent academic research group cannot afford infrastructure investment to innovate in this field 53 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Myth VI - The infrastructure requirements stifles innovation in this field Myth: Small independent academic research group cannot afford infrastructure investment to innovate in this field Reality: • High-quality open-source virtual machines are available – – 54 NC State Seminar Jikes RVM http: //www. ibm. com/developerworks/oss/jikesrvm ORP http: //orp. sourceforge. net Mono http: //go-mono. com <Insert your favorite infrastructure here> February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Comparison between HLL VMs and Dynamic Binary Optimizers HLL VM Dynamic Binary Optimizer • Applies only to programs in target languages • Applies to any program • Exploits program structure and high-level semantics (e. g. types) • Views stream of executed instructions, can infer limited program structure and low-level semantics • Large gains from run-time optimization (10 X vs. interpreter) • Smaller gains from run-time optimization (10% would be good? ) • Most effective optimizations: inlining, register allocation • Most effective optimizations: instruction scheduling, code placement • Optimizer usually expensive, employed selectively • Optimizer usually cheap, often employed ubiquitously Trends suggest that more programs will be written to managed HLLs • Open question: for managed HLL, does binary optimizer add value? 55 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Conclusions § Commercial JVM implementations are on the cutting edge of research in adaptive optimization • § Researchers need to pick up the slack and lead the field Some Java-related research areas are not relevant to commercial settings • 56 (but not last slide!) Whole program analysis of “Java” (to improve performance) § Is HLL dynamic optimization • CGO’ 05 Keynote teaser: A. Static compilation applied at runtime or B. Speculative runtime optimizations with richer semantics? • • We need to think more like a computer architect “Virtual Machine Learning: Thinking like a computer architect” NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Acknowledgements § Stephen Fink and Dave Grove for co-authoring the slides § Toshio Suganuma for data and slides on IBM DK for Java § Matthew Arnold for slides and general feedback § Tamiya Onodera for feedback 57 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Additional Information 58 § PLDI’ 04 Tutorial Slides § “A Survey of Adaptive Optimization in Virtual Machines” § 3 -day Virtual Execution Environment Workshop, Sept’ 04 § VEE’ 05, merger of USENIX JVM/VM conference and SIGPLAN IVME workshop • • • Available on my web page Will be presented at ETAPS/CC’’ 05, April 3 in Edinburgh by Arnold, Fink, Grove, Hind and Sweeney. Proceedings of the IEEE, Feb 2005 Contains tons of citations Linked from my web page 32 experts, hosted by IBM Slides and video for most talk and discussion are available Link off of my web page 2 -day conference, co-located with PLDI’ 05 Broad scope (includes language-level and OS-level VMs) Submission deadline: Fri, Feb 18 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research 59 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Code Size Comparison, startup: IBM DK for Java 60 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Code Size Comparison, steady state: IBM DK for Java 61 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Recomp. Decisions, 20 iterations for each benchmark Jikes RVM 62 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Recomp. Decisions, 20 iterations for each benchmark Jikes RVM 63 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Recompilation Activity: Jikes RVM (Jul ’ 02) compress 64 NC State Seminar jess db February 18, 2005 javac mpegaudio mtrt Debunking Dynamic Optimization Myths jack © 2005 IBM Corporation
IBM Research Recompilation Activity (IBM DK for Java) 65 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Startup: IBM DK for Java, no Specialization [Suganuma et al. ’ 01] 66 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
IBM Research Steady State: IBM DK for Java, no Specialization [Suganuma et al ’ 01] 67 NC State Seminar February 18, 2005 Debunking Dynamic Optimization Myths © 2005 IBM Corporation
- Slides: 67