Feature/advanced profiler (#249)

* feat(profiler): 实现高级性能分析器

* test(core): 添加 ProfilerSDK 和 AdvancedProfilerCollector 测试覆盖

* test(core): 添加 ProfilerSDK 和 AdvancedProfilerCollector 测试覆盖

* test(core): 添加 ProfilerSDK 和 AdvancedProfilerCollector 测试覆盖
This commit is contained in:
YHH
2025-11-30 00:53:01 +08:00
committed by GitHub
parent 374e08a79e
commit 987051acd4
3 changed files with 15 additions and 16 deletions

View File

@@ -512,6 +512,15 @@ export class Core {
return this._instance?._config.debugConfig?.enabled || false;
}
/**
* 获取性能监视器实例
*
* @returns 性能监视器如果Core未初始化则返回null
*/
public static get performanceMonitor(): PerformanceMonitor | null {
return this._instance?._performanceMonitor || null;
}
/**
* 安装插件
*

View File

@@ -27,13 +27,11 @@ export function ProfilerPanel() {
return;
}
const coreInstance = Core.Instance;
if (!coreInstance || !coreInstance._performanceMonitor?.isEnabled) {
const performanceMonitor = Core.performanceMonitor;
if (!performanceMonitor?.isEnabled) {
animationRef.current = requestAnimationFrame(updateProfilerData);
return;
}
const performanceMonitor = coreInstance._performanceMonitor;
const systemDataMap = performanceMonitor.getAllSystemData();
const systemStatsMap = performanceMonitor.getAllSystemStats();
@@ -91,10 +89,7 @@ export function ProfilerPanel() {
}, [isPaused, sortBy]);
const handleReset = () => {
const coreInstance = Core.Instance;
if (coreInstance && coreInstance._performanceMonitor) {
coreInstance._performanceMonitor.reset();
}
Core.performanceMonitor?.reset();
};
const fps = totalFrameTime > 0 ? Math.round(1000 / totalFrameTime) : 0;

View File

@@ -156,13 +156,11 @@ export function ProfilerWindow({ onClose }: ProfilerWindowProps) {
return;
}
const coreInstance = Core.Instance;
if (!coreInstance || !coreInstance._performanceMonitor?.isEnabled) {
const performanceMonitor = Core.performanceMonitor;
if (!performanceMonitor?.isEnabled) {
animationRef.current = requestAnimationFrame(updateProfilerData);
return;
}
const performanceMonitor = coreInstance._performanceMonitor;
const systemDataMap = performanceMonitor.getAllSystemData();
const systemStatsMap = performanceMonitor.getAllSystemStats();
@@ -219,10 +217,7 @@ export function ProfilerWindow({ onClose }: ProfilerWindowProps) {
const handleReset = () => {
if (dataSource === 'local') {
const coreInstance = Core.Instance;
if (coreInstance && coreInstance._performanceMonitor) {
coreInstance._performanceMonitor.reset();
}
Core.performanceMonitor?.reset();
} else {
// Reset remote data
setSystems([]);