创建新工程

This commit is contained in:
moyin
2025-12-05 19:00:14 +08:00
commit ff4fa5fffd
227 changed files with 32804 additions and 0 deletions

View File

@@ -0,0 +1,84 @@
extends Node
class_name PerformanceMonitoringSystem
## 性能监控和报警系统
## 实时监控游戏性能并在出现问题时发出警报
# 性能指标类型
enum MetricType {
FPS, # 帧率
MEMORY_USAGE, # 内存使用
NETWORK_LATENCY, # 网络延迟
LOAD_TIME, # 加载时间
RENDER_TIME, # 渲染时间
SCRIPT_TIME, # 脚本执行时间
PHYSICS_TIME, # 物理计算时间
AUDIO_LATENCY, # 音频延迟
DISK_IO, # 磁盘IO
CPU_USAGE # CPU使用率
}
# 性能警报级别
enum AlertLevel {
INFO, # 信息
WARNING, # 警告
CRITICAL, # 严重
EMERGENCY # 紧急
}
# 性能指标数据结构
class PerformanceMetric:
var metric_type: MetricType
var value: float
var timestamp: float
var threshold_warning: float
var threshold_critical: float
var unit: String
func _init(type: MetricType, val: float, warn_threshold: float = 0.0, crit_threshold: float = 0.0, metric_unit: String = ""):
metric_type = type
value = val
timestamp = Time.get_unix_time_from_system()
threshold_warning = warn_threshold
threshold_critical = crit_threshold
unit = metric_unit
# 性能警报数据结构
class PerformanceAlert:
var alert_id: String
var metric_type: MetricType
var level: AlertLevel
var message: String
var value: float
var threshold: float
var timestamp: float
var resolved: bool = false
func _init(type: MetricType, alert_level: AlertLevel, msg: String, val: float, thresh: float):
alert_id = _generate_alert_id()
metric_type = type
level = alert_level
message = msg
value = val
threshold = thresh
timestamp = Time.get_unix_time_from_system()
func _generate_alert_id() -> String:
return "alert_%d_%d" % [Time.get_unix_time_from_system(), randi()]
# 数据存储
var performance_history: Dictionary = {} # MetricType -> Array[PerformanceMetric]
var active_alerts: Array[PerformanceAlert] = []
var resolved_alerts: Array[PerformanceAlert] = []
var monitoring_enabled: bool = true
# 监控配置
var monitoring_interval: float = 1.0 # 监控间隔(秒)
var history_retention_time: float = 3600.0 # 历史数据保留时间1小时
var max_history_entries: int = 1000
# 性能阈值配置
var performance_thresholds: Dictionary = {
MetricType.FPS: {"warning": 30.0, "critical": 15.0},
MetricType.MEMORY_USAGE: {"warning": 512.0, "critical": 1024.0}, # MB
MetricType.NETWORK_LATENCY: {"warning": 200.0, "critical": 500.0}, # ms
MetricType.LOAD_TIME: {"warning": 5.0, "critical": 10.0}, # seconds