{
  "_description":"This file contains info about our performance test suites, used by the perf dashboard (http://chromeperf.appspot.com).",
  "blink_perf":{
    "description":"Runs all enabled benchmarks in third_party/WebKit/PerformanceTests/",
    "code":[
      "chrome/src/tools/perf/measurements/blink_perf.py",
      "third_party/WebKit/PerformanceTests/"
    ]
  },
  "browsermark": {
    "description": "Runs Browsermark CSS, DOM, WebGL, JS, resize and page load benchmarks.\n\nAdditionally Browsermark will test your browsers conformance, but conformance tests are not included in this suite. [Browsermark 2.0 by Rightware](http://browsermark.rightware.com/)",
    "code": ["chrome/src/tools/perf/benchmarks/browsermark.py"]
  },
  "canvasmark": {
    "description": "Runs Canvasmark HTML5, Canvas 2D rendering and javascript benchmark.\n\nCanvasMark tests the HTML5 <canvas> rendering performance for commonly used operations in HTML5 games: bitmaps, canvas drawing, alpha blending, polygon fills, shadows and text functions.[HTML5 Canvas demo by Kevin Roast](http://www.kevs3d.co.uk/dev/canvasmark/)",
    "code": ["chrome/src/tools/perf/benchmarks/canvasmark.py"]
  },
  "cc_perftests":{
    "description":"Microbenchmarks for compositor (cc/) component.",
    "code":[
      "chrome/src/cc/cc_tests.gyp",
      "chrome/src/cc/trees/layer_tree_host_perftest.cc"
    ]
  },
  "dom_perf":{
    "description":"Performance of DOM operations."
  },
  "dromaeo.domcoreattr":{
    "description":"Setting and getting DOM node attributes."
  },
  "dromaeo.domcoremodify":{
    "description":"Creating and injecting DOM nodes."
  },
  "dromaeo.domcorequery":{
    "description":"Querying DOM elements in a document."
  },
  "dromaeo.domcoretraverse":{
    "description":"Traversing a DOM structure."
  },
  "dromaeo.jslibattrjquery":{
    "description":"Setting and getting DOM node attributes using the jQuery JavaScript Library."
  },
  "dromaeo.jslibattrprototype":{
    "description":"Setting and getting DOM node attributes using the Prototype JavaScript Library."
  },
  "dromaeo.jslibeventjquery":{
    "description":"Binding, removing, and triggering DOM events using the jQuery JavaScript Library."
  },
  "dromaeo.jslibeventprototype":{
    "description":"Binding, removing, and triggering DOM events using the Prototype JavaScript Library."
  },
  "dromaeo.jslibmodifyjquery":{
    "description":"Creating and injecting DOM nodes into a document using the jQuery JavaScript Library"
  },
  "dromaeo.jslibmodifyprototype":{
    "description":"Creating and injecting DOM nodes into a document using the Prototype JavaScript Library."
  },
  "dromaeo.jslibstylejquery":{
    "description":"Getting and setting CSS information on DOM elements using the jQuery JavaScript Library."
  },
  "dromaeo.jslibstyleprototype":{
    "description":"Getting and setting CSS information on DOM elements using the Prototype JavaScript Library."
  },
  "dromaeo.jslibtraversejquery":{
    "description":"Traversing a DOM structure using the jQuery JavaScript Library."
  },
  "dromaeo.jslibtraverseprototype":{
    "description":"Traversing a DOM structure using the Prototype JavaScript Library."
  },
  "fast_path.key_mobile_sites":{
    "description":"Measures CPU usage on rendering critical threads. Both clock and CPU time is measured."
  },
   "html5gaming": {
    "description": "Impact HTML5 Gaming benchmark.\n\nTests one very specific use case: smooth running games rendered with the <canvas> element. The score for the HTML5-Benchmark takes the total time the browser spent rendering frames (formula is 1000000/(sqrt(totalTime) + lagTime * 0.1)). The benchmark automatically runs at a reasonable screen size. Final score is a indicator for the browser's ability to smoothly run HTML5 games.",
    "code": ["chrome/src/tools/perf/benchmark/html5gaming.py"]
  },
  "image_decoding.image_decoding_measurement ":{
    "description":"Milliseconds to decode a large image of various formats (gif, jpg, png, webp)."
  },
  "indexed_db":{
    "description":"Benchmarks for a variety of IndexedDB operations.",
    "code":[
      "chrome/src/chrome/test/data/indexeddb/perf_test.html"
    ]
  },
  "jsgamebench":{
    "description":"Score on [Facebook's JSGameBench benchmark](https://github.com/facebook/jsgamebench).\n\nThe focus is sprite performance a player is likely to see. Scoring is how many sprites are drawn, so large scores are better.\n\nFor each render path, JSGameBench draws as many moving, animating sprites as possible at 30fps against a background with both axis-aligned and rotated sprites. We try both because significant performance differences between the two indicate flaws or oversights in current rendering techniques. More importantly, while animation can be used instead of sprite rotations, it is often an unacceptable trade off that game developers should not be forced to make.\n\nThe final score is the geometric mean of the axis aligned and rotated scores. Geometric mean is used to prevent a high axis aligned score from hiding the poor rotated performance."
  },
  "kraken":{
    "description":"Score on [Mozilla's Kraken JavaScript benchmark](http://krakenbenchmark.mozilla.org/)"
  },
  "media.tough_video_cases":{
    "description":"Obtains media metrics for key user scenarios."
  },
  "media_perftests":{
    "description":"Microbenchmarks for media (media/) component.",
    "code":[
      "chrome/src/media/media.gyp"
    ]
  },
  "memory.reload.2012Q3":{
    "description":"Memory consumption for a set of top pages from 2012, reloading and garbage collecting on each page load."
  },
  "memory.top_25":{
    "description":"Use (recorded versions of) real world web sites and measure memory consumption."
  },
  "memory_test":{
    "description":"Loads a number of URLs across tabs and windows and measures the memory usage.",
    "code":[
      "chrome/src/chrome/test/perf/memory_test.cc"
    ]
  },
  "octane":{
    "description":"Score on the [V8 team's Octane benchmark](http://octane-benchmark.googlecode.com/svn/latest/index.html)"
  },
  "page_cycler.bloat":{
    "description":"Load an image many times and ensure memory usage stays low."
  },
  "page_cycler.dhtml":{
    "description":"Benchmarks for various DHTML operations like simple animations."
  },
  "page_cycler.intl_ar_fa_he":{
    "description":"Page load time benchmark for a variety of pages in Arabic, Farsi and Hebrew. Runs against pages recorded in April, 2013."
  },
  "page_cycler.intl_es_fr_pt-BR":{
    "description":"Page load time benchmark for a variety of pages in Spanish, French and Brazilian Portuguese. Runs against pages recorded in April, 2013."
  },
  "page_cycler.intl_hi_ru":{
    "description":"Page load time benchmark for a variety of pages in Hindi and Russian. Runs against pages recorded in April, 2013."
  },
  "page_cycler.intl_ja_zh":{
    "description":"Page load time benchmark for a variety of pages in Japanese and Chinese. Runs against pages recorded in April, 2013."
  },
  "page_cycler.intl_ko_th_vi":{
    "description":"Page load time benchmark for a variety of pages in Korean, Thai and Vietnamese. Runs against pages recorded in April, 2013."
  },
  "page_cycler.morejs":{
    "description":"Page loading benchmark for a variety of pages that were JavaScript heavy in 2009."
  },
  "page_cycler.moz":{
    "description":"Page loading benchmark for mozilla's original page set. Recorded in December 2000."
  },
  "page_cycler.pica":{
    "description":"Loading benchmark for the Polymer toolkit's [Pica](http://www.polymer-project.org/polymer-all/projects/pica/index.html) demo app"
  },
  "page_cycler.netsim.top_10":{
    "description":"Page loading benchmark for a set of 10 top pages recorded in June, 2013.  Pages are loaded under the simplisticly simulated bandwidth and RTT constraints of a cable modem (5Mbit/s down, 1Mbit/s up, 28ms RTT). Contention is realistically simulated, but slow start is not. DNS lookups are 'free'."
  },
  "page_cycler.top_10_mobile":{
    "description":"Page load time benchmark for the top 10 mobile web pages. Runs against pages recorded in November, 2013."
  },
  "page_cycler.key_mobile_sites":{
    "description":"Page load time benchmark for key mobile sites."
  },
  "page_cycler.tough_layout_cases":{
    "description":"Page loading benchmark for the slowest layouts observed in the Alexa top 1 million sites in July 2013."
  },
  "page_cycler.typical_25":{
    "description":"Page load time benchmark for a 25 typical web pages. Designed to represent typical, not highly optimized or highly popular web sites. Runs against pages recorded in June, 2014."
  },
  "robohornet_pro":{
    "description":"Milliseconds to complete the [RoboHornetPro demo by Microsoft](http://ie.microsoft.com/testdrive/performance/robohornetpro/)"
  },
  "peacekeeper":{
    "description":"Peacekeeper measures browser's performance by testing its JavaScript functionality.\n\nJavaScript is a widely used programming language used in the creation of modern websites to provide features such as animation, navigation,forms and other common requirements. By measuring a browser's ability to handle commonly used JavaScript functions Peacekeeper can evaluate its performance. Peacekeeper scores are measured in operations per second or rendered frames per second depending on the test. Final Score is computed by calculating geometric mean of individual tests scores. [Peacekeeper by Futuremark](http://peacekeeper.futuremark.com)",
    "code":[
      "chrome/src/tools/perf/benchmark/peacekeeper.py"
    ]
  },
  "scheduler.tough_scheduling_cases":{
    "description":"This test measures rendering statistics while interacting with pages that have challenging scheduling properties. Mainly affected by changes to the compositor scheduler or the graphics pipeline."
  },
  "scirra":{
    "description":"The Scirra WebGL performance test measures the number of 2D triangles represented onscreen when the animation reaches the 30 FPS threshold. [Scirra demos](https://www.scirra.com/)",
    "code":[
      "chrome/src/tools/perf/benchmark/scirra.py"
    ]
  },
  "sizes":{
    "description":"Tracks binary sizes and number of static initializers.",
    "code":[
      "chrome/tools/build/scripts/slave/chromium/sizes.py"
    ]
  },
  "smoothness.top_25":{
    "description":"Measures frame rate and a variety of other statistics while scrolling down the top 25 web pages. [Documentation](http://www.chromium.org/developers/design-documents/rendering-benchmarks)."
  },
  "smoothness.tough_canvas_cases":{
    "description":"Measures frame rate and a variety of other statistics on a selection of pages making use of the 2D Canvas API."
  },
  "spaceport":{
    "description":"Performance on [spaceport.io's perfmarks benchmark](http://spaceport.io/community/perfmarks). This test performs 3 animations (rotate, translate, scale) using a variety of methods (css, webgl, canvas, etc) and reports the number of objects that can be simultaneously animated while still achieving 30FPS."
  },
  "startup.cold.blank_page":{
    "description":"Measures cold startup time with a clean profile."
  },
  "startup.cold.dirty.blank_page":{
    "description":"Measures cold startup time with a dirty profile.",
    "comment":"The same as startup.cold.blank_page, except for the user profile that's used. Set up in tools/build/scripts/master/factory/chromium_factory.py."
  },
  "startup.warm.blank_page":{
    "description":"Measures warm startup time with a clean profile."
  },
  "startup.warm.dirty.blank_page":{
    "description":"Measures warm startup time with a dirty profile.",
    "comment":"The same as startup.warm.blank_page, except for the user profile that's used. Set up in tools/build/scripts/master/factory/chromium_factory.py."
  },
  "sunspider":{
    "description":"Performance on the [SunSpider JavaScript benchmark](http://www.webkit.org/perf/sunspider/sunspider.html)"
  },
  "tab_switching.top_10":{
    "description":"This test records the MPArch.RWH_TabSwitchPaintDuration histogram, which is a measure of the time between when a tab was requested to be shown, and when first paint occurred. The script opens 10 pages in different tabs, waits for them to load, and then switches to each tab and records the metric. The pages were chosen from Alexa top ranking sites."
  }
}