-
Notifications
You must be signed in to change notification settings - Fork 10
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
performance benchmarking / optimizing Greenwood #970
Labels
CLI
enhancement
Improve something existing (e.g. no docs, new APIs, etc)
help wanted
Extra attention is needed
question
Further information is requested
v0.27.0
Milestone
Comments
thescientist13
added
enhancement
Improve something existing (e.g. no docs, new APIs, etc)
help wanted
Extra attention is needed
CLI
labels
Aug 5, 2022
5 tasks
23 tasks
23 tasks
5 tasks
So after applying the changes to from #983 , I was able to confirm now that we have no problems at least building 4000 pages without crashing now! 🙌 To help with comparisons, I will be focusing on the MBA benchmark for 4000 pages ( # 8 threads (os.cpus().length)
real 3m18.260s
user 3m24.175s
sys 0m27.565s
[bench] Build complete 4000 pages
[bench] Framework version
# 80 thread (os.cpus().length * 10)
real 3m21.573s
user 3m29.311s
sys 0m31.081s
[bench] Build complete 4000 pages
[bench] Framework version
# 160 thread (os.cpus().length * 20)
# it crashed hah 😅 Would probably good to actually do some performance profiling using the NodeJS inspector. Could be good as a follow up PR. |
5 tasks
thescientist13
moved this to 📋 Backlog
in [Greenwood] Phase 9 - Standards and Conventions
Oct 29, 2022
15 tasks
17 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
CLI
enhancement
Improve something existing (e.g. no docs, new APIs, etc)
help wanted
Extra attention is needed
question
Further information is requested
v0.27.0
Type of Change
Summary
Can't say I've focused to heavily on build time performances but since Zach Leatherman of 11ty put together a bench mark blog post and repo of some of the top SSGs, and so I figured I would test Greenwood just at least get a sense of where it sat amongst the rest.
I made a fork and decided to add Greenwood. 😬 🤞
I tried it on two machines and both had varying struggles:
or
Here are specs, using the same approach Zach took. He didn't mention Node version, so for mine I used 16.14.0. The metric to track is
real
.Results
MBP⚠️
250
500
1000
2000
4000
🚫
MBA 🚨
25
50
100
250
500
🚫
1000
🚫
2000
🚫
4000
🚫
Details
So yeah, definitely some work we could / should do here, at least to chip away it for 1.0. Aside from the issues with the M1 chip one area of opportunity for sure seems to be the bundling phase as each benchmark run always seems to hang a little bit on this part of the process
success, done generating all pages...
Anyway, not sure what is realistic but would certainly like to be somewhat "competitive", as for v1.
Thoughts / Next Steps
prerender: false
- introduce worker thread pools for SSR page generation #983Promise.all
free for all? - introduce worker thread pools for SSR page generation #983Out of even more curiosity, I wonder would it would look like to benchmark the 0.25.0 version, to see how the results would have come out if using Puppeteer.😅compilation.graph
when iterating over pages. Maybe a Map / Set would be better here? - refactor bundling lifecycle and resource optimizations #971async
through and through #823Worker
Threads anymore? (At least for production builds - Enhancement/issue 1088 refactor Workers out of SSR builds #1110)The text was updated successfully, but these errors were encountered: