GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Main page
  • Contents
  • Current events
  • Random article
  • About Wikipedia
  • Contact us
  • Help
  • Learn to edit
  • Community portal
  • Recent changes
  • Upload file
  • Special pages
  • Search
  • Donate

This view

  • Original page
  • New address

GeezerVison is showing en.wikipedia.org — Adaptive optimization - Wikipedia

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
icon
This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources.
Find sources: "Adaptive optimization" – news · newspapers · books · scholar · JSTOR
(August 2012) (Learn how and when to remove this message)
icon
This article needs more citations. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Adaptive optimization" – news · newspapers · books · scholar · JSTOR
(August 2012) (Learn how and when to remove this message)
(Learn how and when to remove this message)

Adaptive optimization is a technique in computer science that performs dynamic recompilation of portions of a program based on the current execution profile. With a simple implementation, an adaptive optimizer may simply make a trade-off between just-in-time compilation and interpreting instructions. At another level, adaptive optimization may take advantage of local data conditions to optimize away branches and to use inline expansion to decrease the cost of procedure calls.

Consider a hypothetical banking application that handles transactions one after another. These transactions may be checks, deposits, and a large number of more obscure transactions. When the program executes, the actual data may consist of clearing tens of thousands of checks without processing a single deposit and without processing a single check with a fraudulent account number. An adaptive optimizer would compile assembly code to optimize for this common case. If the system then started processing tens of thousands of deposits instead, the adaptive optimizer would recompile the assembly code to optimize the new common case. This optimization may include inlining code.

Examples of adaptive optimization include HotSpot and HP's Dynamo system.[1]

In some systems, notably Java virtual machines, execution over a range of bytecode instructions can be provably reversed. This allows an adaptive optimizer to make risky assumptions about the code. In the above example, the optimizer may assume all transactions are checks and all account numbers are valid. When these assumptions prove incorrect, the adaptive optimizer can "unwind" to a valid state and then interpret the bytecode instructions correctly.

See also

  • Profile-guided optimization
  • Hot spot (computer programming)

References

  1. ↑ "HP's Dynamo". Ars Technica. March 2000. p. 1.

External links

  • "Adaptive Optimization in the Jalapeño JVM (2000)" by Matthew Arnold, Stephen Fink, David Grove, Michael Hind, Peter F. Sweeney.
    • CiteSeer for "Adaptive Optimization in the Jalapeño JVM (2000)" (archived 2008-06-06)
Retrieved from "https://en.wikipedia.org/w/index.php?title=Adaptive_optimization&oldid=1384596557"
Category:
  • Compiler optimizations
Hidden categories:
  • Articles with short description
  • Short description matches Wikidata
  • Articles lacking reliable references from August 2012
  • All articles lacking reliable references
  • Articles needing additional references from August 2012
  • All articles needing additional references
  • Articles with multiple maintenance issues
  • All articles with unsourced statements
  • Articles with unsourced statements from June 2011
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.