Skip to content
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

[SR-11418] Add Graph Algorithm benchmarks to test unowned, weak, and unmanaged #53819

Open
gottesmm opened this issue Sep 4, 2019 · 1 comment
Labels
benchmarks compiler The Swift compiler in itself good first issue Good for newcomers standard library Area: Standard library umbrella task

Comments

@gottesmm
Copy link
Member

gottesmm commented Sep 4, 2019

Previous ID SR-11418
Radar None
Original Reporter @gottesmm
Type Task
Additional Detail from JIRA
Votes 1
Component/s Compiler, Standard Library
Labels Task, Benchmark, StarterBug
Assignee None
Priority Medium

md5: 4c8274584ae974ce398c7d395aad0770

Issue Description:

Right now IIRC we do not have any (public) benchmarks testing the performance of unowned, weak, Unmanaged. In fact when I just did a git grep for weak or unowned I did not see /any/ references in the benchmark suite. We should add new benchmarks that test the codegen here for all 3.

With that in mind, one type of benchmark that is straight forward to write to test this performance is to write graph algorithms on graphs that use non-strong pointers internally to maintain the graph edges to prevent reference cycles in the graph.

NOTE: The reason I put this in Compiler and Standard Library is b/c the missing coverage of Unmanaged in benchmarking involves missing stdlib benchmarking coverage.

Some ideas of algorithms:

1. Dijkstra Algorithm.
2. Computing the post order numbers for a graph (or providing a topological order).
3. Computing strongly connected components of a graph.

These are just some off the top of my head.

I would say we should also look at DeltaBlue but I think there is a licensing issue. If we eventually convert the benchmark suite so we only use the package toolchain, it should be easy to put DeltaBlue into a different repo and make it an optional dependency.

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
@k-thorat
Copy link

Hey @gottesmm Is this issue still valid?

You have created benchmark/single-source/PrimsNonStrongRef.swift does that cover everything you wanted?

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
benchmarks compiler The Swift compiler in itself good first issue Good for newcomers standard library Area: Standard library umbrella task
Projects
None yet
Development

No branches or pull requests

2 participants