]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
workflow: bench against bundled dist file to avoid import access overhead
authorEvan You <evan@vuejs.org>
Thu, 14 Nov 2024 00:38:48 +0000 (08:38 +0800)
committerEvan You <evan@vuejs.org>
Thu, 14 Nov 2024 00:38:48 +0000 (08:38 +0800)
ref https://github.com/vitest-dev/vitest/issues/6903

package.json
packages/reactivity/__benchmarks__/computed.bench.ts
packages/reactivity/__benchmarks__/effect.bench.ts
packages/reactivity/__benchmarks__/reactiveArray.bench.ts
packages/reactivity/__benchmarks__/reactiveMap.bench.ts
packages/reactivity/__benchmarks__/reactiveObject.bench.ts
packages/reactivity/__benchmarks__/ref.bench.ts
packages/server-renderer/__tests__/createBuffer.bench.ts
packages/server-renderer/__tests__/unrollBuffer.bench.ts

index 12f1159e6391e7b0467d815958a239fbba070833..2d3af0f27d26343e6be28d21b4dd603632e26624 100644 (file)
@@ -22,6 +22,8 @@
     "test-dts": "run-s build-dts test-dts-only",
     "test-dts-only": "tsc -p packages-private/dts-built-test/tsconfig.json && tsc -p ./packages-private/dts-test/tsconfig.test.json",
     "test-coverage": "vitest run --project unit --coverage",
+    "prebench": "node scripts/build.js -pf esm-browser reactivity",
+    "prebench-compare": "node scripts/build.js -pf esm-browser reactivity",
     "bench": "vitest bench --project=unit --outputJson=temp/bench.json",
     "bench-compare": "vitest bench --project=unit --compare=temp/bench.json",
     "release": "node scripts/release.js",
index d9757501f81559f291c74a83bcb0c34d66c549aa..a2a49486a891b6cefac04a6f2a614ca0590d49ce 100644 (file)
@@ -1,5 +1,10 @@
 import { bench, describe } from 'vitest'
-import { type ComputedRef, type Ref, computed, effect, ref } from '../src'
+import type { ComputedRef, Ref } from '../src'
+import { computed, effect, ref } from '../dist/reactivity.esm-browser.prod'
+
+declare module '../dist/reactivity.esm-browser.prod' {
+  function computed(...args: any[]): any
+}
 
 describe('computed', () => {
   bench('create computed', () => {
index 8d3d6ecfbfc0850a3478fb53a2b0cabe9f885852..a1026db2153d059f595585b557a16fcfe2a120b1 100644 (file)
@@ -1,5 +1,6 @@
 import { bench, describe } from 'vitest'
-import { type Ref, effect, ref } from '../src'
+import type { Ref } from '../src'
+import { effect, ref } from '../dist/reactivity.esm-browser.prod'
 
 describe('effect', () => {
   {
index f5032cf7ae9f04c955101928387524dcce88264f..910c10015e9671bddc319242d73c0ee37c316a56 100644 (file)
@@ -1,5 +1,9 @@
 import { bench } from 'vitest'
-import { effect, reactive, shallowReadArray } from '../src'
+import {
+  effect,
+  reactive,
+  shallowReadArray,
+} from '../dist/reactivity.esm-browser.prod'
 
 for (let amount = 1e1; amount < 1e4; amount *= 10) {
   {
index f8b4611153e554de9882f560c927ba632477cf95..5af03ba4b14a3b34474b474be794f38b9f3c4132 100644 (file)
@@ -1,5 +1,6 @@
 import { bench } from 'vitest'
-import { type ComputedRef, computed, reactive } from '../src'
+import type { ComputedRef } from '../src'
+import { computed, reactive } from '../dist/reactivity.esm-browser.prod'
 
 function createMap(obj: Record<string, any>) {
   const map = new Map()
index a326a111b490e37d2a6c3ed47a5944e345011652..1b444d4fec6beda07a4b4dc916b272e1c2d32f73 100644 (file)
@@ -1,5 +1,5 @@
 import { bench } from 'vitest'
-import { reactive } from '../src'
+import { reactive } from '../dist/reactivity.esm-browser.prod'
 
 bench('create reactive obj', () => {
   reactive({ a: 1 })
index 0c05890179b07b8356c20ff26e146005b95f5224..4c1d2b5b82f0e4ee2d4a092d6a0314c552630f8b 100644 (file)
@@ -1,5 +1,5 @@
 import { bench, describe } from 'vitest'
-import { ref } from '../src/index'
+import { ref } from '../dist/reactivity.esm-browser.prod'
 
 describe('ref', () => {
   bench('create ref', () => {
index fff20f927fbd1bfa5b32dcbb5cd5f58cbc8a35b9..002626d9e123e06c78a0e1871c8c8dd46bcda971 100644 (file)
@@ -1,6 +1,10 @@
 import { bench, describe } from 'vitest'
 
-import { createBuffer } from '../src/render'
+import { createBuffer as _createBuffer } from '../src/render'
+
+// move to local const to avoid import access overhead
+// https://github.com/vitest-dev/vitest/issues/6903
+const createBuffer = _createBuffer
 
 describe('createBuffer', () => {
   let stringBuffer = createBuffer()
index b5e03cea6024252c96ee47c1ff175a8c0ba13494..b26ab9b28ef2a180ed69bbc2bab7bcb75d6924dc 100644 (file)
@@ -1,7 +1,11 @@
 import { bench, describe } from 'vitest'
 
 import { type SSRBuffer, createBuffer } from '../src/render'
-import { unrollBuffer } from '../src/renderToString'
+import { unrollBuffer as _unrollBuffer } from '../src/renderToString'
+
+// move to local const to avoid import access overhead
+// https://github.com/vitest-dev/vitest/issues/6903
+const unrollBuffer = _unrollBuffer
 
 function createSyncBuffer(levels: number, itemsPerLevel: number): SSRBuffer {
   const buffer = createBuffer()