summaryrefslogtreecommitdiff
path: root/benchmark/make-project/memory-default.js
diff options
context:
space:
mode:
authorGravatar Bjorn Lu <bjornlu.dev@gmail.com> 2023-03-01 16:46:06 +0800
committerGravatar GitHub <noreply@github.com> 2023-03-01 08:46:06 +0000
commitf4937949d6ec6bf5a326071119638d30afa91243 (patch)
treee1fde83232abffb9fd505a19e14f56c13aa73963 /benchmark/make-project/memory-default.js
parent045262ee9961286d21b486272764ed0f69153aa8 (diff)
downloadastro-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.js59
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);
+}