v8/test/js-perf-test
Caitlin Potter 190128ce7c [js-perf-test] add microbenchmarks for (Object|Reflect).getOwnPropertyDescriptor
Based on the robust test suite for checking property "has/in" queries, with the intention
of measuring the performance of accessing getOwnPropertyDescriptor.

Background: getOwnPropertyDescriptor and defineProperty were identified as hot code taking up
a significant chunk of startup time in a customer application. This benchmark aims to measure
the difference made by a modifying Object.getOwnPropertyDescriptor.

By current measurements, the geometric mean time of the new version is typically 1/6 that of
the current upstream implementation, using this test specifically (however, only on arm64 /
Apple M1... On Linux/x64, the results look more reasonable at a roughly 5-12% improvement in
score).

In its current form, this benchmark does very little to attempt to verify the results of the
object, which may result in branches being discarded in Turbofan (but given the enormous
difference between x64 and arm64, I'm not positive this is what is happening, and have not yet
verified this).

BUG=

Change-Id: I0f10735315313ed97efd00fcccaedc1272d4d314
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3624979
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80373}
2022-05-05 14:15:55 +00:00
..
ApiAccessors [api] Add benchmark for api accessors 2021-10-12 10:44:52 +00:00
Array Revert "[call reducer] inline Array.prototype.indexOf/includes in js-call-reducer." 2022-03-17 11:39:46 +00:00
ArrayIndexOfIncludesPolymorphic [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayInOperator [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadLargeDoubleHoley [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadLargeDoublePacked [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadLargeHoley [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadLargePacked [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadLargeSmiMap [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadLargeSmiSet [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadSmallDoubleHoley [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadSmallDoublePacked [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadSmallHoley [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadSmallPacked [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadSmallSmiMap [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadSmallSmiSet [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralSpread [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArraySort [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
AsyncAwait [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
BigInt [js-perf-test] Performance benchmarks for BigInt left and right shift 2021-12-02 14:16:15 +00:00
BytecodeHandlers Reland "[interpreter] Optimize strict equal boolean" 2022-04-25 10:02:05 +00:00
Classes [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ClassFields [class] add microbenchmarks for private methods 2021-11-06 05:40:22 +00:00
Closures [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Collections [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
DataView [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Dates [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Exceptions [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ExpressionDepth [parser] Use n-ary addition for template strings 2017-10-31 16:02:53 +00:00
ForLoops [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Generators [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
GetOwnPropertyDescriptor [js-perf-test] add microbenchmarks for (Object|Reflect).getOwnPropertyDescriptor 2022-05-05 14:15:55 +00:00
IC [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Inspector [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
InterpreterEntryTrampoline [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Intl [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Iterators [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Keys [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ManyClosures [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Modules [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Numbers [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Object [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ObjectDestructuringAssignment [test] Add js-perf-test for object destructuring assignment 2022-03-21 13:42:20 +00:00
ObjectFreeze [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ObjectLiteralSpread [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Operators [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Parsing [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
PropertyQueries [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Proxies [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
RegExp [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
RestParameters [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Scope [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
SixSpeed [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
SpreadCalls [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
SpreadCallsGeneral [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
StackTrace [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
StringIterators [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Strings [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
SuperIC [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
SwitchStatements A jump-table implementation for constant case switch statements 2021-06-23 09:26:23 +00:00
Templates [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
TurboFan [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
TypedArrays [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
base.js [test] Ensure random generator in JSTests does not use float arithmetic 2018-12-17 10:05:08 +00:00
ClassFields.json [class] add microbenchmarks for private methods 2021-11-06 05:40:22 +00:00
JSTests1.json [js-perf-test] Performance benchmarks for BigInt left and right shift 2021-12-02 14:16:15 +00:00
JSTests2.json Revert "[call reducer] inline Array.prototype.indexOf/includes in js-call-reducer." 2022-03-17 11:39:46 +00:00
JSTests3.json [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
JSTests4.json add micro-benchmark for proxy trap setPrototypeOf 2019-06-25 16:18:52 +00:00
JSTests5.json [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
OWNERS Update OWNERS in test/* 2021-02-25 14:26:24 +00:00
RegExp.json Add benchmark for regexp "gi". 2019-06-28 17:56:31 +00:00
SixSpeed.json Increase timeout for JSTests/Array test and fix Michael's username 2019-04-16 12:24:10 +00:00
SuperIC.json [super] Rewrite perf tests 2020-11-16 08:36:24 +00:00