diff options
author | 2023-03-01 16:46:06 +0800 | |
---|---|---|
committer | 2023-03-01 08:46:06 +0000 | |
commit | f4937949d6ec6bf5a326071119638d30afa91243 (patch) | |
tree | e1fde83232abffb9fd505a19e14f56c13aa73963 /benchmark/make-project/memory-default.js | |
parent | 045262ee9961286d21b486272764ed0f69153aa8 (diff) | |
download | astro-f4937949d6ec6bf5a326071119638d30afa91243.tar.gz astro-f4937949d6ec6bf5a326071119638d30afa91243.tar.zst astro-f4937949d6ec6bf5a326071119638d30afa91243.zip |
Refactor benchmark script (#6376)
* Add timer setting
* Setup benchmark code
* Setup memory benchmark
* Add compare function
* Add result preview
* Setup results preview
* Simplify script for CI
* Update CI
* Cleanup
* Temp remove fork guard
* Fix stuff
* Fix again
* Fix quotes
* Fix multiline output
* Simplify title
* Fix memory numbers
* Remove astro bin dir
* Fix gc
* Add repo guards
* Fix wrong call
* Set max space size
* Remove guard
* Bump memory a bit
* Organize neatly
* Update readme
* Try large md
* Try no gc
* Revert markdown and gc changes
* Test sha
* Try ref
* Try 128mb
* Set 256
* Add guard
* Apply suggestions from code review
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Add docs comment
---------
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Diffstat (limited to 'benchmark/make-project/memory-default.js')
-rw-r--r-- | benchmark/make-project/memory-default.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/benchmark/make-project/memory-default.js b/benchmark/make-project/memory-default.js new file mode 100644 index 000000000..021a42b0f --- /dev/null +++ b/benchmark/make-project/memory-default.js @@ -0,0 +1,59 @@ +import fs from 'fs/promises'; +import { loremIpsum } from './_util.js'; + +/** + * @param {URL} projectDir + */ +export async function run(projectDir) { + await fs.rm(projectDir, { recursive: true, force: true }); + await fs.mkdir(new URL('./src/pages/blog', projectDir), { recursive: true }); + await fs.mkdir(new URL('./src/content/blog', projectDir), { recursive: true }); + + const promises = []; + + for (let i = 0; i < 100; i++) { + const content = `\ +--- +const i = ${i}; +--- + +<span>{i}</span> +`; + promises.push( + fs.writeFile(new URL(`./src/pages/page-${i}.astro`, projectDir), content, 'utf-8') + ); + } + + for (let i = 0; i < 100; i++) { + const content = `\ +# Article ${i} + +${loremIpsum} +`; + promises.push( + fs.writeFile(new URL(`./src/content/blog/article-${i}.md`, projectDir), content, 'utf-8') + ); + } + + await fs.writeFile( + new URL(`./src/pages/blog/[...slug].astro`, projectDir), + `\ +--- +import { getCollection } from 'astro:content'; +export async function getStaticPaths() { + const blogEntries = await getCollection('blog'); + return blogEntries.map(entry => ({ + params: { slug: entry.slug }, props: { entry }, + })); +} +const { entry } = Astro.props; +const { Content } = await entry.render(); +--- +<h1>{entry.data.title}</h1> +<Content /> +`, + 'utf-8' + ); + + await Promise.all(promises); +} |