@lytjs/devtools 4.2.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1700 -564
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +743 -0
- package/dist/index.d.ts +743 -0
- package/dist/index.mjs +1613 -564
- package/dist/index.mjs.map +1 -0
- package/package.json +41 -26
- package/README.md +0 -153
- package/dist/types/batch-analyzer.d.ts +0 -150
- package/dist/types/batch-analyzer.d.ts.map +0 -1
- package/dist/types/component-profiler.d.ts +0 -144
- package/dist/types/component-profiler.d.ts.map +0 -1
- package/dist/types/component-tree.d.ts +0 -69
- package/dist/types/component-tree.d.ts.map +0 -1
- package/dist/types/event-panel.d.ts +0 -129
- package/dist/types/event-panel.d.ts.map +0 -1
- package/dist/types/event-tracker.d.ts +0 -80
- package/dist/types/event-tracker.d.ts.map +0 -1
- package/dist/types/hooks.d.ts +0 -177
- package/dist/types/hooks.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -185
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/memory-tracker.d.ts +0 -148
- package/dist/types/memory-tracker.d.ts.map +0 -1
- package/dist/types/panel.d.ts +0 -182
- package/dist/types/panel.d.ts.map +0 -1
- package/dist/types/perf-collector.d.ts +0 -328
- package/dist/types/perf-collector.d.ts.map +0 -1
- package/dist/types/perf-panel.d.ts +0 -231
- package/dist/types/perf-panel.d.ts.map +0 -1
- package/dist/types/render-tracker.d.ts +0 -147
- package/dist/types/render-tracker.d.ts.map +0 -1
- package/dist/types/route-panel.d.ts +0 -68
- package/dist/types/route-panel.d.ts.map +0 -1
- package/dist/types/router-panel-enhanced.d.ts +0 -118
- package/dist/types/router-panel-enhanced.d.ts.map +0 -1
- package/dist/types/state-inspector.d.ts +0 -80
- package/dist/types/state-inspector.d.ts.map +0 -1
- package/dist/types/time-travel.d.ts +0 -189
- package/dist/types/time-travel.d.ts.map +0 -1
- package/dist/types/virtual-tree.d.ts +0 -168
- package/dist/types/virtual-tree.d.ts.map +0 -1
package/dist/types/panel.d.ts
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lyt.js DevTools — 调试面板 UI
|
|
3
|
-
*
|
|
4
|
-
* 创建和管理浮动调试面板,纯 DOM 实现,不依赖任何 UI 框架。
|
|
5
|
-
*
|
|
6
|
-
* 核心功能:
|
|
7
|
-
* - DevToolsPanel 类:创建和管理调试面板
|
|
8
|
-
* - 浮动面板 UI(纯 DOM 创建)
|
|
9
|
-
* - 顶部标签栏:组件树 / 状态 / 事件 / 路由
|
|
10
|
-
* - 内容区域:根据选中标签显示不同内容
|
|
11
|
-
* - 底部状态栏:显示当前选中组件信息
|
|
12
|
-
* - 面板可拖拽(mousedown/mousemove/mouseup)
|
|
13
|
-
* - 面板可折叠/展开
|
|
14
|
-
* - 暗色主题样式(内联 CSS)
|
|
15
|
-
* - 面板大小可调整
|
|
16
|
-
*
|
|
17
|
-
* 纯原生零依赖实现。
|
|
18
|
-
*/
|
|
19
|
-
/** 标签页类型 */
|
|
20
|
-
export type TabType = 'components' | 'state' | 'events' | 'router';
|
|
21
|
-
/** 面板配置 */
|
|
22
|
-
export interface PanelConfig {
|
|
23
|
-
/** 面板初始宽度 */
|
|
24
|
-
width?: number;
|
|
25
|
-
/** 面板初始高度 */
|
|
26
|
-
height?: number;
|
|
27
|
-
/** 面板初始 X 位置 */
|
|
28
|
-
x?: number;
|
|
29
|
-
/** 面板初始 Y 位置 */
|
|
30
|
-
y?: number;
|
|
31
|
-
/** 面板最小宽度 */
|
|
32
|
-
minWidth?: number;
|
|
33
|
-
/** 面板最小高度 */
|
|
34
|
-
minHeight?: number;
|
|
35
|
-
/** 面板标题 */
|
|
36
|
-
title?: string;
|
|
37
|
-
}
|
|
38
|
-
/** 标签页内容渲染器 */
|
|
39
|
-
type TabContentRenderer = (container: HTMLElement) => void;
|
|
40
|
-
/**
|
|
41
|
-
* DevTools 调试面板
|
|
42
|
-
*
|
|
43
|
-
* 创建和管理浮动调试面板,支持拖拽、折叠、大小调整等功能。
|
|
44
|
-
*/
|
|
45
|
-
export declare class DevToolsPanel {
|
|
46
|
-
/** 面板根 DOM 元素 */
|
|
47
|
-
private panelEl;
|
|
48
|
-
/** 标题栏元素 */
|
|
49
|
-
private headerEl;
|
|
50
|
-
/** 标签栏元素 */
|
|
51
|
-
private tabsEl;
|
|
52
|
-
/** 内容区域元素 */
|
|
53
|
-
private contentEl;
|
|
54
|
-
/** 底部状态栏元素 */
|
|
55
|
-
private statusbarEl;
|
|
56
|
-
/** 当前激活的标签 */
|
|
57
|
-
private activeTab;
|
|
58
|
-
/** 标签页内容渲染器映射 */
|
|
59
|
-
private tabRenderers;
|
|
60
|
-
/** 面板是否可见 */
|
|
61
|
-
private _visible;
|
|
62
|
-
/** 面板是否折叠 */
|
|
63
|
-
private _collapsed;
|
|
64
|
-
/** 面板配置 */
|
|
65
|
-
private config;
|
|
66
|
-
/** 拖拽状态 */
|
|
67
|
-
private dragState;
|
|
68
|
-
/** 调整大小状态 */
|
|
69
|
-
private resizeState;
|
|
70
|
-
/** 样式元素引用 */
|
|
71
|
-
private styleEl;
|
|
72
|
-
/** 状态栏左侧文本 */
|
|
73
|
-
private statusLeftEl;
|
|
74
|
-
/** 状态栏右侧文本 */
|
|
75
|
-
private statusRightEl;
|
|
76
|
-
/** 高亮覆盖层 */
|
|
77
|
-
private highlightOverlay;
|
|
78
|
-
/** 调整大小手柄 */
|
|
79
|
-
private _resizeHandle;
|
|
80
|
-
constructor(config?: PanelConfig);
|
|
81
|
-
/**
|
|
82
|
-
* 创建面板 DOM 结构,并返回所有元素的引用
|
|
83
|
-
*/
|
|
84
|
-
private createPanelElementWithRefs;
|
|
85
|
-
/**
|
|
86
|
-
* 创建面板 DOM 结构(向后兼容)
|
|
87
|
-
*/
|
|
88
|
-
private createPanelElement;
|
|
89
|
-
/**
|
|
90
|
-
* 创建非浏览器环境下的 mock 面板元素
|
|
91
|
-
*/
|
|
92
|
-
/**
|
|
93
|
-
* 创建非浏览器环境下的 mock 面板元素
|
|
94
|
-
*/
|
|
95
|
-
private createMockPanelElement;
|
|
96
|
-
/**
|
|
97
|
-
* 切换标签页
|
|
98
|
-
*/
|
|
99
|
-
switchTab(tabId: TabType): void;
|
|
100
|
-
/**
|
|
101
|
-
* 注册标签页内容渲染器
|
|
102
|
-
*/
|
|
103
|
-
registerTabRenderer(tabId: TabType, renderer: TabContentRenderer): void;
|
|
104
|
-
/**
|
|
105
|
-
* 渲染当前标签页内容
|
|
106
|
-
*/
|
|
107
|
-
renderContent(): void;
|
|
108
|
-
/**
|
|
109
|
-
* 获取当前激活的标签页 ID
|
|
110
|
-
*/
|
|
111
|
-
getActiveTab(): TabType;
|
|
112
|
-
/**
|
|
113
|
-
* 获取内容区域 DOM 元素
|
|
114
|
-
*/
|
|
115
|
-
getContentElement(): HTMLElement;
|
|
116
|
-
/**
|
|
117
|
-
* 显示面板
|
|
118
|
-
*/
|
|
119
|
-
show(): void;
|
|
120
|
-
/**
|
|
121
|
-
* 隐藏面板
|
|
122
|
-
*/
|
|
123
|
-
hide(): void;
|
|
124
|
-
/**
|
|
125
|
-
* 切换面板显示状态
|
|
126
|
-
*/
|
|
127
|
-
toggle(): void;
|
|
128
|
-
/**
|
|
129
|
-
* 面板是否可见
|
|
130
|
-
*/
|
|
131
|
-
isVisible(): boolean;
|
|
132
|
-
/**
|
|
133
|
-
* 切换折叠状态
|
|
134
|
-
*/
|
|
135
|
-
toggleCollapse(): void;
|
|
136
|
-
/**
|
|
137
|
-
* 是否折叠
|
|
138
|
-
*/
|
|
139
|
-
isCollapsed(): boolean;
|
|
140
|
-
/**
|
|
141
|
-
* 绑定拖拽事件
|
|
142
|
-
*/
|
|
143
|
-
private bindDragEvents;
|
|
144
|
-
/**
|
|
145
|
-
* 绑定调整大小事件
|
|
146
|
-
*/
|
|
147
|
-
private bindResizeEvents;
|
|
148
|
-
/**
|
|
149
|
-
* 绑定键盘事件
|
|
150
|
-
*/
|
|
151
|
-
private bindKeyboardEvents;
|
|
152
|
-
/**
|
|
153
|
-
* 窗口大小变化时调整面板位置
|
|
154
|
-
*/
|
|
155
|
-
private onWindowResize;
|
|
156
|
-
/**
|
|
157
|
-
* 更新状态栏左侧文本
|
|
158
|
-
*/
|
|
159
|
-
setStatusLeft(html: string): void;
|
|
160
|
-
/**
|
|
161
|
-
* 更新状态栏右侧文本
|
|
162
|
-
*/
|
|
163
|
-
setStatusRight(text: string): void;
|
|
164
|
-
/**
|
|
165
|
-
* 设置连接状态
|
|
166
|
-
*/
|
|
167
|
-
setConnected(connected: boolean): void;
|
|
168
|
-
/**
|
|
169
|
-
* 高亮指定 DOM 元素
|
|
170
|
-
*/
|
|
171
|
-
highlightElement(el: Element | null): void;
|
|
172
|
-
/**
|
|
173
|
-
* 清除高亮
|
|
174
|
-
*/
|
|
175
|
-
clearHighlight(): void;
|
|
176
|
-
/**
|
|
177
|
-
* 销毁面板,清理所有 DOM 和事件
|
|
178
|
-
*/
|
|
179
|
-
destroy(): void;
|
|
180
|
-
}
|
|
181
|
-
export {};
|
|
182
|
-
//# sourceMappingURL=panel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/panel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,328 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lyt.js DevTools - 性能指标收集器
|
|
3
|
-
*
|
|
4
|
-
* 收集和存储各类性能指标,包括:
|
|
5
|
-
* - FCP (First Contentful Paint)
|
|
6
|
-
* - INP (Interaction to Next Paint)
|
|
7
|
-
* - 组件渲染时间
|
|
8
|
-
* - 更新频率
|
|
9
|
-
* - 内存使用(代理对象计数)
|
|
10
|
-
*
|
|
11
|
-
* 使用环形缓冲区存储指标,防止内存泄漏。
|
|
12
|
-
* 纯原生零依赖实现。
|
|
13
|
-
*/
|
|
14
|
-
/** FCP 指标 */
|
|
15
|
-
export interface FCPMetric {
|
|
16
|
-
/** 指标名称 */
|
|
17
|
-
type: 'fcp';
|
|
18
|
-
/** FCP 时间戳 (ms, 相对于 performance.timeOrigin) */
|
|
19
|
-
value: number;
|
|
20
|
-
/** 记录时间 */
|
|
21
|
-
timestamp: number;
|
|
22
|
-
}
|
|
23
|
-
/** INP 指标 */
|
|
24
|
-
export interface INPMetric {
|
|
25
|
-
/** 指标名称 */
|
|
26
|
-
type: 'inp';
|
|
27
|
-
/** 事件处理耗时 (ms) */
|
|
28
|
-
value: number;
|
|
29
|
-
/** 事件名称 */
|
|
30
|
-
eventName: string;
|
|
31
|
-
/** 来源组件名称 */
|
|
32
|
-
componentName?: string;
|
|
33
|
-
/** 记录时间 */
|
|
34
|
-
timestamp: number;
|
|
35
|
-
}
|
|
36
|
-
/** 组件渲染指标 */
|
|
37
|
-
export interface RenderMetric {
|
|
38
|
-
/** 指标名称 */
|
|
39
|
-
type: 'render';
|
|
40
|
-
/** 渲染耗时 (ms) */
|
|
41
|
-
value: number;
|
|
42
|
-
/** 组件名称 */
|
|
43
|
-
componentName: string;
|
|
44
|
-
/** 组件 ID */
|
|
45
|
-
componentId?: string;
|
|
46
|
-
/** 渲染阶段: mount | update | unmount */
|
|
47
|
-
phase: 'mount' | 'update' | 'unmount';
|
|
48
|
-
/** 记录时间 */
|
|
49
|
-
timestamp: number;
|
|
50
|
-
}
|
|
51
|
-
/** 更新频率指标 */
|
|
52
|
-
export interface UpdateFrequencyMetric {
|
|
53
|
-
/** 指标名称 */
|
|
54
|
-
type: 'update-frequency';
|
|
55
|
-
/** 组件名称 */
|
|
56
|
-
componentName: string;
|
|
57
|
-
/** 时间窗口内更新次数 */
|
|
58
|
-
count: number;
|
|
59
|
-
/** 时间窗口大小 (ms) */
|
|
60
|
-
windowMs: number;
|
|
61
|
-
/** 记录时间 */
|
|
62
|
-
timestamp: number;
|
|
63
|
-
}
|
|
64
|
-
/** 内存使用指标 */
|
|
65
|
-
export interface MemoryMetric {
|
|
66
|
-
/** 指标名称 */
|
|
67
|
-
type: 'memory';
|
|
68
|
-
/** 代理对象数量 */
|
|
69
|
-
proxyCount: number;
|
|
70
|
-
/** 响应式状态对象数量 */
|
|
71
|
-
reactiveCount: number;
|
|
72
|
-
/** 记录时间 */
|
|
73
|
-
timestamp: number;
|
|
74
|
-
}
|
|
75
|
-
/** 自定义计时标记 */
|
|
76
|
-
export interface CustomMarkMetric {
|
|
77
|
-
/** 指标名称 */
|
|
78
|
-
type: 'custom';
|
|
79
|
-
/** 标记名称 */
|
|
80
|
-
name: string;
|
|
81
|
-
/** 耗时 (ms) */
|
|
82
|
-
value: number;
|
|
83
|
-
/** 记录时间 */
|
|
84
|
-
timestamp: number;
|
|
85
|
-
}
|
|
86
|
-
/** FPS 指标 */
|
|
87
|
-
export interface FPSMetric {
|
|
88
|
-
/** 指标名称 */
|
|
89
|
-
type: 'fps';
|
|
90
|
-
/** 当前 FPS */
|
|
91
|
-
value: number;
|
|
92
|
-
/** 记录时间 */
|
|
93
|
-
timestamp: number;
|
|
94
|
-
}
|
|
95
|
-
/** 所有指标联合类型 */
|
|
96
|
-
export type Metric = FCPMetric | INPMetric | RenderMetric | UpdateFrequencyMetric | MemoryMetric | CustomMarkMetric | FPSMetric;
|
|
97
|
-
/** 性能报告 */
|
|
98
|
-
export interface PerformanceReport {
|
|
99
|
-
/** 报告生成时间 */
|
|
100
|
-
generatedAt: number;
|
|
101
|
-
/** FCP 指标(最新值) */
|
|
102
|
-
fcp: FCPMetric | null;
|
|
103
|
-
/** INP 指标统计 */
|
|
104
|
-
inp: {
|
|
105
|
-
/** 平均值 */
|
|
106
|
-
avg: number;
|
|
107
|
-
/** 最大值 */
|
|
108
|
-
max: number;
|
|
109
|
-
/** 最小值 */
|
|
110
|
-
min: number;
|
|
111
|
-
/** 样本数 */
|
|
112
|
-
count: number;
|
|
113
|
-
};
|
|
114
|
-
/** 组件渲染统计(按组件名分组) */
|
|
115
|
-
renderStats: {
|
|
116
|
-
/** 组件名称 */
|
|
117
|
-
componentName: string;
|
|
118
|
-
/** 渲染次数 */
|
|
119
|
-
renderCount: number;
|
|
120
|
-
/** 平均渲染时间 (ms) */
|
|
121
|
-
avgRenderTime: number;
|
|
122
|
-
/** 最大渲染时间 (ms) */
|
|
123
|
-
maxRenderTime: number;
|
|
124
|
-
/** 总渲染时间 (ms) */
|
|
125
|
-
totalRenderTime: number;
|
|
126
|
-
}[];
|
|
127
|
-
/** 更新频率统计 */
|
|
128
|
-
updateFrequencyStats: {
|
|
129
|
-
/** 组件名称 */
|
|
130
|
-
componentName: string;
|
|
131
|
-
/** 平均更新频率 (次/秒) */
|
|
132
|
-
avgFrequency: number;
|
|
133
|
-
}[];
|
|
134
|
-
/** 内存使用(最新值) */
|
|
135
|
-
memory: MemoryMetric | null;
|
|
136
|
-
/** FPS 统计 */
|
|
137
|
-
fps: {
|
|
138
|
-
/** 平均 FPS */
|
|
139
|
-
avg: number;
|
|
140
|
-
/** 最低 FPS */
|
|
141
|
-
min: number;
|
|
142
|
-
/** 样本数 */
|
|
143
|
-
count: number;
|
|
144
|
-
};
|
|
145
|
-
/** 自定义标记统计 */
|
|
146
|
-
customMarks: {
|
|
147
|
-
/** 标记名称 */
|
|
148
|
-
name: string;
|
|
149
|
-
/** 平均耗时 (ms) */
|
|
150
|
-
avg: number;
|
|
151
|
-
/** 最大耗时 (ms) */
|
|
152
|
-
max: number;
|
|
153
|
-
/** 样本数 */
|
|
154
|
-
count: number;
|
|
155
|
-
}[];
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* 性能指标收集器
|
|
159
|
-
*
|
|
160
|
-
* 收集、存储和报告各类性能指标。
|
|
161
|
-
* 使用环形缓冲区限制内存使用。
|
|
162
|
-
*/
|
|
163
|
-
export declare class PerformanceCollector {
|
|
164
|
-
/** FCP 指标缓冲区 */
|
|
165
|
-
private fcpBuffer;
|
|
166
|
-
/** INP 指标缓冲区 */
|
|
167
|
-
private inpBuffer;
|
|
168
|
-
/** 组件渲染指标缓冲区 */
|
|
169
|
-
private renderBuffer;
|
|
170
|
-
/** 更新频率指标缓冲区 */
|
|
171
|
-
private updateFrequencyBuffer;
|
|
172
|
-
/** 内存使用指标缓冲区 */
|
|
173
|
-
private memoryBuffer;
|
|
174
|
-
/** 自定义标记缓冲区 */
|
|
175
|
-
private customMarkBuffer;
|
|
176
|
-
/** FPS 指标缓冲区 */
|
|
177
|
-
private fpsBuffer;
|
|
178
|
-
/** 自定义标记起始时间映射 */
|
|
179
|
-
private pendingMarks;
|
|
180
|
-
/** 组件更新计数(用于计算更新频率) */
|
|
181
|
-
private componentUpdateCounts;
|
|
182
|
-
/** FPS 监控状态 */
|
|
183
|
-
private fpsState;
|
|
184
|
-
/** 是否正在录制 */
|
|
185
|
-
private _isRecording;
|
|
186
|
-
/** 缓冲区容量 */
|
|
187
|
-
private readonly bufferSize;
|
|
188
|
-
constructor(bufferSize?: number);
|
|
189
|
-
/**
|
|
190
|
-
* 记录 FCP 指标
|
|
191
|
-
*
|
|
192
|
-
* @param value - FCP 时间 (ms),如果未提供则尝试从 Performance API 获取
|
|
193
|
-
*/
|
|
194
|
-
recordFCP(value?: number): void;
|
|
195
|
-
/**
|
|
196
|
-
* 记录 INP 指标
|
|
197
|
-
*
|
|
198
|
-
* @param duration - 事件处理耗时 (ms)
|
|
199
|
-
* @param eventName - 事件名称
|
|
200
|
-
* @param componentName - 来源组件名称(可选)
|
|
201
|
-
*/
|
|
202
|
-
recordINP(duration: number, eventName: string, componentName?: string): void;
|
|
203
|
-
/**
|
|
204
|
-
* 记录组件渲染
|
|
205
|
-
*
|
|
206
|
-
* @param componentName - 组件名称
|
|
207
|
-
* @param duration - 渲染耗时 (ms)
|
|
208
|
-
* @param phase - 渲染阶段
|
|
209
|
-
* @param componentId - 组件 ID(可选)
|
|
210
|
-
*/
|
|
211
|
-
recordRender(componentName: string, duration: number, phase?: 'mount' | 'update' | 'unmount', componentId?: string): void;
|
|
212
|
-
/**
|
|
213
|
-
* 追踪组件更新
|
|
214
|
-
*
|
|
215
|
-
* @param componentName - 组件名称
|
|
216
|
-
*/
|
|
217
|
-
private trackComponentUpdate;
|
|
218
|
-
/**
|
|
219
|
-
* 记录内存使用
|
|
220
|
-
*
|
|
221
|
-
* @param proxyCount - 代理对象数量
|
|
222
|
-
* @param reactiveCount - 响应式状态对象数量
|
|
223
|
-
*/
|
|
224
|
-
recordMemory(proxyCount: number, reactiveCount: number): void;
|
|
225
|
-
/**
|
|
226
|
-
* 开始一个自定义计时标记
|
|
227
|
-
*
|
|
228
|
-
* @param name - 标记名称
|
|
229
|
-
*/
|
|
230
|
-
startMark(name: string): void;
|
|
231
|
-
/**
|
|
232
|
-
* 结束一个自定义计时标记并记录结果
|
|
233
|
-
*
|
|
234
|
-
* @param name - 标记名称
|
|
235
|
-
* @returns 耗时 (ms),如果标记不存在则返回 -1
|
|
236
|
-
*/
|
|
237
|
-
endMark(name: string): number;
|
|
238
|
-
/**
|
|
239
|
-
* 开始 FPS 监控
|
|
240
|
-
*/
|
|
241
|
-
startFPSMonitor(): void;
|
|
242
|
-
/**
|
|
243
|
-
* 停止 FPS 监控
|
|
244
|
-
*/
|
|
245
|
-
stopFPSMonitor(): void;
|
|
246
|
-
/**
|
|
247
|
-
* 是否正在监控 FPS
|
|
248
|
-
*/
|
|
249
|
-
isFPSMonitoring(): boolean;
|
|
250
|
-
/**
|
|
251
|
-
* 开始录制
|
|
252
|
-
*/
|
|
253
|
-
startRecording(): void;
|
|
254
|
-
/**
|
|
255
|
-
* 停止录制
|
|
256
|
-
*/
|
|
257
|
-
stopRecording(): void;
|
|
258
|
-
/**
|
|
259
|
-
* 是否正在录制
|
|
260
|
-
*/
|
|
261
|
-
isRecording(): boolean;
|
|
262
|
-
/**
|
|
263
|
-
* 获取所有收集的指标
|
|
264
|
-
*
|
|
265
|
-
* @returns 所有指标数组
|
|
266
|
-
*/
|
|
267
|
-
getMetrics(): Metric[];
|
|
268
|
-
/**
|
|
269
|
-
* 获取指定类型的指标
|
|
270
|
-
*
|
|
271
|
-
* @param type - 指标类型
|
|
272
|
-
* @returns 指标数组
|
|
273
|
-
*/
|
|
274
|
-
getMetricsByType<T extends Metric['type']>(type: T): Extract<Metric, {
|
|
275
|
-
type: T;
|
|
276
|
-
}>[];
|
|
277
|
-
/**
|
|
278
|
-
* 获取最新 FPS 值
|
|
279
|
-
*
|
|
280
|
-
* @returns 最新 FPS 值,如果没有则返回 0
|
|
281
|
-
*/
|
|
282
|
-
getCurrentFPS(): number;
|
|
283
|
-
/**
|
|
284
|
-
* 获取组件渲染排名(按平均渲染时间降序)
|
|
285
|
-
*
|
|
286
|
-
* @returns 排序后的组件渲染统计
|
|
287
|
-
*/
|
|
288
|
-
getRenderRankings(): {
|
|
289
|
-
componentName: string;
|
|
290
|
-
renderCount: number;
|
|
291
|
-
avgRenderTime: number;
|
|
292
|
-
maxRenderTime: number;
|
|
293
|
-
totalRenderTime: number;
|
|
294
|
-
}[];
|
|
295
|
-
/**
|
|
296
|
-
* 获取总代理对象计数(最新值)
|
|
297
|
-
*
|
|
298
|
-
* @returns 代理对象计数,如果没有数据则返回 0
|
|
299
|
-
*/
|
|
300
|
-
getProxyCount(): number;
|
|
301
|
-
/**
|
|
302
|
-
* 获取慢渲染列表(渲染时间 > 16ms)
|
|
303
|
-
*
|
|
304
|
-
* @returns 慢渲染指标数组
|
|
305
|
-
*/
|
|
306
|
-
getSlowRenders(): RenderMetric[];
|
|
307
|
-
/**
|
|
308
|
-
* 生成性能摘要报告
|
|
309
|
-
*
|
|
310
|
-
* @returns 性能报告
|
|
311
|
-
*/
|
|
312
|
-
getReport(): PerformanceReport;
|
|
313
|
-
/**
|
|
314
|
-
* 导出所有收集的指标为 JSON 字符串
|
|
315
|
-
*
|
|
316
|
-
* @returns JSON 字符串
|
|
317
|
-
*/
|
|
318
|
-
exportJSON(): string;
|
|
319
|
-
/**
|
|
320
|
-
* 清除所有收集的指标
|
|
321
|
-
*/
|
|
322
|
-
clear(): void;
|
|
323
|
-
/**
|
|
324
|
-
* 销毁收集器,停止所有监控
|
|
325
|
-
*/
|
|
326
|
-
destroy(): void;
|
|
327
|
-
}
|
|
328
|
-
//# sourceMappingURL=perf-collector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"perf-collector.d.ts","sourceRoot":"","sources":["../../src/perf-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,aAAa;AACb,MAAM,WAAW,SAAS;IACxB,WAAW;IACX,IAAI,EAAE,KAAK,CAAA;IACX,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAA;IACb,WAAW;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,aAAa;AACb,MAAM,WAAW,SAAS;IACxB,WAAW;IACX,IAAI,EAAE,KAAK,CAAA;IACX,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,aAAa;AACb,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,IAAI,EAAE,QAAQ,CAAA;IACd,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qCAAqC;IACrC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAA;IACrC,WAAW;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,aAAa;AACb,MAAM,WAAW,qBAAqB;IACpC,WAAW;IACX,IAAI,EAAE,kBAAkB,CAAA;IACxB,WAAW;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,aAAa;AACb,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,IAAI,EAAE,QAAQ,CAAA;IACd,aAAa;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,cAAc;AACd,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,IAAI,EAAE,QAAQ,CAAA;IACd,WAAW;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,aAAa;AACb,MAAM,WAAW,SAAS;IACxB,WAAW;IACX,IAAI,EAAE,KAAK,CAAA;IACX,aAAa;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,eAAe;AACf,MAAM,MAAM,MAAM,GACd,SAAS,GACT,SAAS,GACT,YAAY,GACZ,qBAAqB,GACrB,YAAY,GACZ,gBAAgB,GAChB,SAAS,CAAA;AAEb,WAAW;AACX,MAAM,WAAW,iBAAiB;IAChC,aAAa;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB;IAClB,GAAG,EAAE,SAAS,GAAG,IAAI,CAAA;IACrB,eAAe;IACf,GAAG,EAAE;QACH,UAAU;QACV,GAAG,EAAE,MAAM,CAAA;QACX,UAAU;QACV,GAAG,EAAE,MAAM,CAAA;QACX,UAAU;QACV,GAAG,EAAE,MAAM,CAAA;QACX,UAAU;QACV,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,qBAAqB;IACrB,WAAW,EAAE;QACX,WAAW;QACX,aAAa,EAAE,MAAM,CAAA;QACrB,WAAW;QACX,WAAW,EAAE,MAAM,CAAA;QACnB,kBAAkB;QAClB,aAAa,EAAE,MAAM,CAAA;QACrB,kBAAkB;QAClB,aAAa,EAAE,MAAM,CAAA;QACrB,iBAAiB;QACjB,eAAe,EAAE,MAAM,CAAA;KACxB,EAAE,CAAA;IACH,aAAa;IACb,oBAAoB,EAAE;QACpB,WAAW;QACX,aAAa,EAAE,MAAM,CAAA;QACrB,mBAAmB;QACnB,YAAY,EAAE,MAAM,CAAA;KACrB,EAAE,CAAA;IACH,gBAAgB;IAChB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,aAAa;IACb,GAAG,EAAE;QACH,aAAa;QACb,GAAG,EAAE,MAAM,CAAA;QACX,aAAa;QACb,GAAG,EAAE,MAAM,CAAA;QACX,UAAU;QACV,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,cAAc;IACd,WAAW,EAAE;QACX,WAAW;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,gBAAgB;QAChB,GAAG,EAAE,MAAM,CAAA;QACX,gBAAgB;QAChB,GAAG,EAAE,MAAM,CAAA;QACX,UAAU;QACV,KAAK,EAAE,MAAM,CAAA;KACd,EAAE,CAAA;CACJ;AAyED;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B,gBAAgB;IAChB,OAAO,CAAC,SAAS,CAAuB;IACxC,gBAAgB;IAChB,OAAO,CAAC,SAAS,CAAuB;IACxC,gBAAgB;IAChB,OAAO,CAAC,YAAY,CAA0B;IAC9C,gBAAgB;IAChB,OAAO,CAAC,qBAAqB,CAAmC;IAChE,gBAAgB;IAChB,OAAO,CAAC,YAAY,CAA0B;IAC9C,eAAe;IACf,OAAO,CAAC,gBAAgB,CAA8B;IACtD,gBAAgB;IAChB,OAAO,CAAC,SAAS,CAAuB;IAExC,kBAAkB;IAClB,OAAO,CAAC,YAAY,CAAiC;IAErD,uBAAuB;IACvB,OAAO,CAAC,qBAAqB,CAA+D;IAE5F,eAAe;IACf,OAAO,CAAC,QAAQ,CAKf;IAED,aAAa;IACb,OAAO,CAAC,YAAY,CAAiB;IAErC,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;gBAEvB,UAAU,GAAE,MAA4B;IAsBpD;;;;OAIG;IACH,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAuB/B;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAc5E;;;;;;;OAOG;IACH,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,OAAO,GAAG,QAAQ,GAAG,SAAoB,EAChD,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI;IAkBP;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;;;;OAKG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAa7D;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7B;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAuB7B;;OAEG;IACH,eAAe,IAAI,IAAI;IAgCvB;;OAEG;IACH,cAAc,IAAI,IAAI;IAUtB;;OAEG;IACH,eAAe,IAAI,OAAO;IAQ1B;;OAEG;IACH,cAAc,IAAI,IAAI;IAKtB;;OAEG;IACH,aAAa,IAAI,IAAI;IAKrB;;OAEG;IACH,WAAW,IAAI,OAAO;IAQtB;;;;OAIG;IACH,UAAU,IAAI,MAAM,EAAE;IAYtB;;;;;OAKG;IACH,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EACvC,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,EAAE;IAKjC;;;;OAIG;IACH,aAAa,IAAI,MAAM;IAMvB;;;;OAIG;IACH,iBAAiB,IAAI;QACnB,aAAa,EAAE,MAAM,CAAA;QACrB,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;QACrB,aAAa,EAAE,MAAM,CAAA;QACrB,eAAe,EAAE,MAAM,CAAA;KACxB,EAAE;IA8BH;;;;OAIG;IACH,aAAa,IAAI,MAAM;IAMvB;;;;OAIG;IACH,cAAc,IAAI,YAAY,EAAE;IAQhC;;;;OAIG;IACH,SAAS,IAAI,iBAAiB;IA4E9B;;;;OAIG;IACH,UAAU,IAAI,MAAM;IAWpB;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
|