Skip to content

An additional benchmark for KeyPath read performance. #61795

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 21 commits into from
Nov 7, 2022
Merged
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
0089a50
Add benchmarks that measure KeyPath read and write performance.
fibrechannelscsi Aug 3, 2022
7c4fd37
Added setUpFunctions. Revised number of iterations per benchmark.
fibrechannelscsi Aug 5, 2022
ea9984b
Include n as a factor in the number of iterations.
fibrechannelscsi Aug 5, 2022
578ce7d
Increased number of iterations for KeyPathDirectAccess by a factor of…
fibrechannelscsi Aug 8, 2022
14ef45a
One last tweak to the number of iterations on testDirectAccess to get…
fibrechannelscsi Aug 8, 2022
2efa8eb
Made revisions based on feedback. Added three new benchmarks.
fibrechannelscsi Aug 11, 2022
221c0e5
Added benchmarks to exhaustively benchmark all KeyPathComponent types…
fibrechannelscsi Aug 16, 2022
1b7d834
Wrapped additional keypaths with identity() where needed. More cleanu…
fibrechannelscsi Aug 16, 2022
8562c6a
Moved KeyPaths for KeyPathRead and Write into FixedSizeArrayHolder. R…
fibrechannelscsi Aug 17, 2022
0db40a0
Added inline(never) to both versions of getKeypathToElement().
fibrechannelscsi Aug 19, 2022
1c9ba16
Moved identity() wraps so that they're called once per variable per b…
fibrechannelscsi Aug 22, 2022
34d0ac0
Moving destinationKeyPaths into FixedSizeArrayHolder to try to reduce…
fibrechannelscsi Aug 23, 2022
ceb69d0
Additional moving of the identity() wrapping into the singleton's ini…
fibrechannelscsi Aug 23, 2022
cc41b97
Merge branch 'apple:main' into main
fibrechannelscsi Aug 24, 2022
66c6f7d
Proposed design for skipping of KeyPath projections across trivially-…
fibrechannelscsi Aug 24, 2022
0378bf5
Merge branch 'main' of github.com:fibrechannelscsi/keypath-benchmarks
fibrechannelscsi Aug 24, 2022
14436a0
Clarified a comment in isTuple().
fibrechannelscsi Aug 24, 2022
ad68085
Added a benchmark for KeyPaths where trivially-typed memory is preced…
fibrechannelscsi Oct 28, 2022
0751362
Merge branch 'main' into more-keypath-benchmarks
fibrechannelscsi Nov 3, 2022
c1e03a1
Fixing bad rebase on KeyPath.swift.
fibrechannelscsi Nov 4, 2022
f526e08
Reduces the workload of run_KeyPathClassStructs by a factor of 4.
fibrechannelscsi Nov 4, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Added inline(never) to both versions of getKeypathToElement().
  • Loading branch information
fibrechannelscsi committed Aug 19, 2022
commit 0db40a08cdb8d06ff5a44d6082a3e4a6a47b74fc
2 changes: 2 additions & 0 deletions benchmark/single-source/KeyPathPerformanceTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -839,6 +839,7 @@ struct FixedSizeArray100<Element>: Sequence, IteratorProtocol {
var element98: Element
var element99: Element

@inline(never)
static func getKeypathToElement(index: Int)
-> WritableKeyPath<FixedSizeArray100<Element>, Element>
{
Expand Down Expand Up @@ -1100,6 +1101,7 @@ struct FixedSizeArray10<Element>: Sequence, IteratorProtocol {
var element8: Element
var element9: Element

@inline(never)
static func getKeypathToElement(index: Int)
-> WritableKeyPath<FixedSizeArray10<Element>, Element>
{
Expand Down