Example browser benchmark
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- javascript
- Domain
- performance, testing
Research direction
Start with the linked pull-block-browserbench project and review the manyPairs, manyTriplets, and bigBuffers scenarios, comparing the dev, master, and v1.2.0 results in this issue. Determine whether the method covers enough cases and identify additional cases needed to compare implementations; done means a documented benchmark plan with agreed coverage and conclusions.
Written by the indexing model from the issue text.
Description
It isn't the prettiest framework, but it produced some insights.
https://github.com/Beanow/pull-block-browserbench
To test the #2 theories. There's a "dev" version of pull-block there which has the implementation without any concat or slices, using only alloc and copy. PR #4
var tests = {
// Suspected worst-case.
manyPairs: test({
inSize: 16*KB,
inCount: 10000,
blockSize: 30*KB
}),
// Suspected worst-case.
manyTriplets: test({
inSize: 11*KB,
inCount: 14000,
blockSize: 30*KB
}),
// Large incoming buffers scenario.
bigBuffers: test({
inSize: 20*MB,
inCount: 1,
blockSize: 50*KB
})
}
Firefox:
Test manyPairs with pull-block dev ran an average of 107ms
Test manyPairs with pull-block master ran an average of 257ms
Test manyPairs with pull-block v1.2.0 ran an average of 178ms
Test manyTriplets with pull-block dev ran an average of 105ms
Test manyTriplets with pull-block master ran an average of 318ms
Test manyTriplets with pull-block v1.2.0 ran an average of 186ms
Test bigBuffers with pull-block dev ran an average of 39ms
Test bigBuffers with pull-block master ran an average of 23ms
Test bigBuffers with pull-block v1.2.0 ran an average of 2951ms
Chromium:
Test manyPairs with pull-block dev ran an average of 63ms
Test manyPairs with pull-block master ran an average of 99ms
Test manyPairs with pull-block v1.2.0 ran an average of 57ms
Test manyTriplets with pull-block dev ran an average of 61ms
Test manyTriplets with pull-block master ran an average of 101ms
Test manyTriplets with pull-block v1.2.0 ran an average of 66ms
Test bigBuffers with pull-block dev ran an average of 25ms
Test bigBuffers with pull-block master ran an average of 16ms
Test bigBuffers with pull-block v1.2.0 failed: RangeError: Array buffer allocation failed
So it's a gain, but certainly not as big of a difference as the previous patch. And interestingly it seems my previous patch slightly regressed performance for the high volume scenario.
I do suppose that these tests don't cover enough cases to decide which is better. Hence I'm putting it up as a separate issue. Does this make sense as a test method and what more cases does it need?
- Dominant language
- JavaScript
- Stars
- 7
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dignifiedquire/pull-block
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
dignifiedquire/pull-block#12 ·
All issues in dignifiedquire/pull-block
Similar issues
-
Difficulty 2/5 Under an hour Newbie friendliness 88/100
invoiceninja/invoiceninja#13320 ·
Maintainers usually reply within 1 day
-
Type:Bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
NuGet/NuGetGallery#11026 ·
Maintainers usually reply within 1 day
-
NoCode.vue, Task.vue: replace explicit `any` with real typesPossibly taken @prayas-bit claimed this today. Openarea/frontend good first issue kind/cooldown
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
kestra-io/kestra#20347 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
ubuntu/gnome-shell-extension-appindicator#676 · 1 comment ·
-
first-Agent inherits Docker TLS settings for its recorded Unix socketPossibly taken @ericcaiwx-star claimed this today. Openclawsweeper:bulk-filed clawsweeper:linked-pr-open clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster P2
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
openclaw/openclaw-enterprise#1337 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day