• Caitlin Potter's avatar
    [js-perf-test] add microbenchmarks for (Object|Reflect).getOwnPropertyDescriptor · 190128ce
    Caitlin Potter authored
    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: 's avatarToon Verwaest <verwaest@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#80373}
    190128ce
Name
Last commit
Last update
..
ApiAccessors Loading commit data...
Array Loading commit data...
ArrayInOperator Loading commit data...
ArrayIndexOfIncludesPolymorphic Loading commit data...
ArrayLiteralInitialSpreadLargeDoubleHoley Loading commit data...
ArrayLiteralInitialSpreadLargeDoublePacked Loading commit data...
ArrayLiteralInitialSpreadLargeHoley Loading commit data...
ArrayLiteralInitialSpreadLargePacked Loading commit data...
ArrayLiteralInitialSpreadLargeSmiMap Loading commit data...
ArrayLiteralInitialSpreadLargeSmiSet Loading commit data...
ArrayLiteralInitialSpreadSmallDoubleHoley Loading commit data...
ArrayLiteralInitialSpreadSmallDoublePacked Loading commit data...
ArrayLiteralInitialSpreadSmallHoley Loading commit data...
ArrayLiteralInitialSpreadSmallPacked Loading commit data...
ArrayLiteralInitialSpreadSmallSmiMap Loading commit data...
ArrayLiteralInitialSpreadSmallSmiSet Loading commit data...
ArrayLiteralSpread Loading commit data...
ArraySort Loading commit data...
AsyncAwait Loading commit data...
BigInt Loading commit data...
BytecodeHandlers Loading commit data...
ClassFields Loading commit data...
Classes Loading commit data...
Closures Loading commit data...
Collections Loading commit data...
DataView Loading commit data...
Dates Loading commit data...
Exceptions Loading commit data...
ExpressionDepth Loading commit data...
ForLoops Loading commit data...
Generators Loading commit data...
GetOwnPropertyDescriptor Loading commit data...
IC Loading commit data...
Inspector Loading commit data...
InterpreterEntryTrampoline Loading commit data...
Intl Loading commit data...
Iterators Loading commit data...
Keys Loading commit data...
ManyClosures Loading commit data...
Modules Loading commit data...
Numbers Loading commit data...
Object Loading commit data...
ObjectDestructuringAssignment Loading commit data...
ObjectFreeze Loading commit data...
ObjectLiteralSpread Loading commit data...
Operators Loading commit data...
Parsing Loading commit data...
PropertyQueries Loading commit data...
Proxies Loading commit data...
RegExp Loading commit data...
RestParameters Loading commit data...
Scope Loading commit data...
SixSpeed Loading commit data...
SpreadCalls Loading commit data...
SpreadCallsGeneral Loading commit data...
StackTrace Loading commit data...
StringIterators Loading commit data...
Strings Loading commit data...
SuperIC Loading commit data...
SwitchStatements Loading commit data...
Templates Loading commit data...
TurboFan Loading commit data...
TypedArrays Loading commit data...
ClassFields.json Loading commit data...
JSTests1.json Loading commit data...
JSTests2.json Loading commit data...
JSTests3.json Loading commit data...
JSTests4.json Loading commit data...
JSTests5.json Loading commit data...
OWNERS Loading commit data...
RegExp.json Loading commit data...
SixSpeed.json Loading commit data...
SuperIC.json Loading commit data...
base.js Loading commit data...