From 3b44ba33565b51dda734eacebd15b4a772c1aaf3 Mon Sep 17 00:00:00 2001 From: zhouxinyu Date: Thu, 20 Feb 2025 18:10:12 +0800 Subject: [PATCH] test: add memory test --- .../__tests__/browser/src/pages/index.ts | 4 +++ .../__tests__/browser/src/pages/memory.ts | 33 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 packages/vrender/__tests__/browser/src/pages/memory.ts diff --git a/packages/vrender/__tests__/browser/src/pages/index.ts b/packages/vrender/__tests__/browser/src/pages/index.ts index df72142b3..fe7c27976 100644 --- a/packages/vrender/__tests__/browser/src/pages/index.ts +++ b/packages/vrender/__tests__/browser/src/pages/index.ts @@ -15,6 +15,10 @@ export const pages = [ name: '性能测试', path: 'performance-test' }, + { + name: '内存', + path: 'memory' + }, { name: '按需加载', path: 'anxu-picker' diff --git a/packages/vrender/__tests__/browser/src/pages/memory.ts b/packages/vrender/__tests__/browser/src/pages/memory.ts new file mode 100644 index 000000000..e05511a76 --- /dev/null +++ b/packages/vrender/__tests__/browser/src/pages/memory.ts @@ -0,0 +1,33 @@ +import { createStage, createRect, IGraphic } from '@visactor/vrender'; +import { roughModule } from '@visactor/vrender-kits'; +import { addShapesToStage, colorPools } from '../utils'; + +// container.load(roughModule); +export const page = () => { + let stage: any; + function run() { + stage && stage.release(); + const graphics: IGraphic[] = []; + for (let i = 0; i < 10000; i++) { + graphics.push(createRect({ x: 100, y: 100, width: 100, height: 100, fill: 'red' })); + } + + stage = createStage({ + canvas: 'main', + canvasControled: false, + autoRender: true, + autoRefresh: true + }); + graphics.forEach(g => { + stage.defaultLayer.add(g); + }); + } + const button = document.createElement('button'); + button.innerHTML = 'run'; + button.onclick = () => { + for (let i = 0; i < 300; i++) { + run(); + } + }; + document.body.appendChild(button); +};