mirror of https://github.com/sveltejs/svelte
chore: add ssr benchmark suite (#14361)
* chore: add ssr benchmark suite * lint * Update benchmarking/run.js Co-authored-by: Rich Harris <rich.harris@vercel.com> --------- Co-authored-by: Rich Harris <rich.harris@vercel.com>pull/14363/head
parent
6e8267f462
commit
f6117bb328
@ -0,0 +1 @@
|
||||
output
|
@ -1,5 +1,5 @@
|
||||
import { assert, fastest_test } from '../../utils.js';
|
||||
import * as $ from '../../../packages/svelte/src/internal/client/index.js';
|
||||
import { assert, fastest_test } from '../../../utils.js';
|
||||
import * as $ from 'svelte/internal/client';
|
||||
import { busy } from './util.js';
|
||||
|
||||
function setup() {
|
@ -1,5 +1,5 @@
|
||||
import { assert, fastest_test } from '../../utils.js';
|
||||
import * as $ from '../../../packages/svelte/src/internal/client/index.js';
|
||||
import { assert, fastest_test } from '../../../utils.js';
|
||||
import * as $ from 'svelte/internal/client';
|
||||
|
||||
function setup() {
|
||||
let head = $.state(0);
|
@ -1,5 +1,5 @@
|
||||
import { assert, fastest_test } from '../../utils.js';
|
||||
import * as $ from '../../../packages/svelte/src/internal/client/index.js';
|
||||
import { assert, fastest_test } from '../../../utils.js';
|
||||
import * as $ from 'svelte/internal/client';
|
||||
|
||||
let len = 50;
|
||||
const iter = 50;
|
@ -1,5 +1,5 @@
|
||||
import { assert, fastest_test } from '../../utils.js';
|
||||
import * as $ from '../../../packages/svelte/src/internal/client/index.js';
|
||||
import { assert, fastest_test } from '../../../utils.js';
|
||||
import * as $ from 'svelte/internal/client';
|
||||
|
||||
let width = 5;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { assert, fastest_test } from '../../utils.js';
|
||||
import * as $ from '../../../packages/svelte/src/internal/client/index.js';
|
||||
import { assert, fastest_test } from '../../../utils.js';
|
||||
import * as $ from 'svelte/internal/client';
|
||||
|
||||
function setup() {
|
||||
let heads = new Array(100).fill(null).map((_) => $.state(0));
|
@ -1,5 +1,5 @@
|
||||
import { assert, fastest_test } from '../../utils.js';
|
||||
import * as $ from '../../../packages/svelte/src/internal/client/index.js';
|
||||
import { assert, fastest_test } from '../../../utils.js';
|
||||
import * as $ from 'svelte/internal/client';
|
||||
|
||||
let size = 30;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { assert, fastest_test } from '../../utils.js';
|
||||
import * as $ from '../../../packages/svelte/src/internal/client/index.js';
|
||||
import { assert, fastest_test } from '../../../utils.js';
|
||||
import * as $ from 'svelte/internal/client';
|
||||
|
||||
let width = 10;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { assert, fastest_test } from '../../utils.js';
|
||||
import * as $ from '../../../packages/svelte/src/internal/client/index.js';
|
||||
import { assert, fastest_test } from '../../../utils.js';
|
||||
import * as $ from 'svelte/internal/client';
|
||||
|
||||
function setup() {
|
||||
let head = $.state(0);
|
@ -1,5 +1,5 @@
|
||||
import { assert, fastest_test } from '../utils.js';
|
||||
import * as $ from '../../packages/svelte/src/internal/client/index.js';
|
||||
import { assert, fastest_test } from '../../utils.js';
|
||||
import * as $ from 'svelte/internal/client';
|
||||
|
||||
/**
|
||||
* @param {number} n
|
@ -1,5 +1,5 @@
|
||||
import { fastest_test } from '../utils.js';
|
||||
import * as $ from '../../packages/svelte/src/internal/client/index.js';
|
||||
import { fastest_test } from '../../utils.js';
|
||||
import * as $ from '../../../packages/svelte/src/internal/client/index.js';
|
||||
|
||||
const COUNT = 1e5;
|
||||
|
@ -0,0 +1,3 @@
|
||||
import { wrapper_bench } from './wrapper/wrapper_bench.js';
|
||||
|
||||
export const ssr_benchmarks = [wrapper_bench];
|
@ -0,0 +1,31 @@
|
||||
<script>
|
||||
const wrapperWidth = 960;
|
||||
const wrapperHeight = 720;
|
||||
const cellSize = 10;
|
||||
const centerX = wrapperWidth / 2;
|
||||
const centerY = wrapperHeight / 2;
|
||||
|
||||
let angle = 0;
|
||||
let radius = 0;
|
||||
|
||||
let tiles = [];
|
||||
const step = cellSize;
|
||||
|
||||
while (radius < Math.min(wrapperWidth, wrapperHeight) / 2) {
|
||||
let x = centerX + Math.cos(angle) * radius;
|
||||
let y = centerY + Math.sin(angle) * radius;
|
||||
|
||||
if (x >= 0 && x <= wrapperWidth - cellSize && y >= 0 && y <= wrapperHeight - cellSize) {
|
||||
tiles.push({ x, y });
|
||||
}
|
||||
|
||||
angle += 0.2;
|
||||
radius += step * 0.015;
|
||||
}
|
||||
</script>
|
||||
|
||||
<div id="wrapper">
|
||||
{#each tiles as { x, y }}
|
||||
<div class="tile" style="left: {x.toFixed(2)}px; top: {y.toFixed(2)}px;"></div>
|
||||
{/each}
|
||||
</div>
|
@ -0,0 +1,36 @@
|
||||
import { render } from 'svelte/server';
|
||||
import { fastest_test, read_file, write } from '../../../utils.js';
|
||||
import { compile } from 'svelte/compiler';
|
||||
|
||||
const dir = `${process.cwd()}/benchmarking/benchmarks/ssr/wrapper`;
|
||||
|
||||
async function compile_svelte() {
|
||||
const output = compile(read_file(`${dir}/App.svelte`), {
|
||||
generate: 'server'
|
||||
});
|
||||
write(`${dir}/output/App.js`, output.js.code);
|
||||
|
||||
const module = await import(`${dir}/output/App.js`);
|
||||
|
||||
return module.default;
|
||||
}
|
||||
|
||||
export async function wrapper_bench() {
|
||||
const App = await compile_svelte();
|
||||
// Do 3 loops to warm up JIT
|
||||
for (let i = 0; i < 3; i++) {
|
||||
render(App);
|
||||
}
|
||||
|
||||
const { timing } = await fastest_test(10, () => {
|
||||
for (let i = 0; i < 100; i++) {
|
||||
render(App);
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
benchmark: 'wrapper_bench',
|
||||
time: timing.time.toFixed(2),
|
||||
gc_time: timing.gc_time.toFixed(2)
|
||||
};
|
||||
}
|
Loading…
Reference in new issue