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

Use VecDeque instead of Vec in sigverify stage #22538

Merged
merged 1 commit into from Jan 17, 2022

Conversation

sakridge
Copy link
Member

@sakridge sakridge commented Jan 17, 2022

Problem

Vec has bad remove(0) performance.

Summary of Changes

Avoid bad performance of remove(0) for a single sender and use VecDeque instead.

Before:

test bench_packet_discard_many_senders  ... bench:   1,943,585 ns/iter (+/- 3,441)
test bench_packet_discard_single_sender ... bench:  55,018,780 ns/iter (+/- 326,300)

After:

test bench_packet_discard_many_senders  ... bench:   1,894,268 ns/iter (+/- 12,025)
test bench_packet_discard_single_sender ... bench:   1,361,563 ns/iter (+/- 8,583)

Fixes #

@sakridge sakridge force-pushed the sigverify-rejection branch 2 times, most recently from 64fdc12 to 3c9599a Compare January 17, 2022 08:31
avoid bad performance of remove(0) for a single sender
@sakridge sakridge requested a review from jstarry January 17, 2022 16:46
@sakridge sakridge merged commit 4944340 into solana-labs:master Jan 17, 2022
@sakridge sakridge deleted the sigverify-rejection branch January 17, 2022 17:37
mergify bot pushed a commit that referenced this pull request Jan 17, 2022
avoid bad performance of remove(0) for a single sender

(cherry picked from commit 4944340)

# Conflicts:
#	core/src/sigverify_stage.rs
mergify bot pushed a commit that referenced this pull request Jan 17, 2022
avoid bad performance of remove(0) for a single sender

(cherry picked from commit 4944340)

# Conflicts:
#	core/src/sigverify_stage.rs
t-nelson pushed a commit that referenced this pull request Jan 17, 2022
avoid bad performance of remove(0) for a single sender

(cherry picked from commit 4944340)

# Conflicts:
#	core/src/sigverify_stage.rs
t-nelson pushed a commit that referenced this pull request Jan 17, 2022
avoid bad performance of remove(0) for a single sender

(cherry picked from commit 4944340)

# Conflicts:
#	core/src/sigverify_stage.rs
mergify bot added a commit that referenced this pull request Jan 17, 2022
avoid bad performance of remove(0) for a single sender

(cherry picked from commit 4944340)

# Conflicts:
#	core/src/sigverify_stage.rs

Co-authored-by: sakridge <sakridge@gmail.com>
mergify bot added a commit that referenced this pull request Jan 19, 2022
avoid bad performance of remove(0) for a single sender

(cherry picked from commit 4944340)

# Conflicts:
#	core/src/sigverify_stage.rs

Co-authored-by: sakridge <sakridge@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants