Files
Test_AI/generate_stress_charts.py
2026-01-20 10:54:30 +08:00

88 lines
2.9 KiB
Python

"""
压力测试结果可视化生成脚本
运行此脚本生成专业的可视化报表
"""
import sys
import os
from pathlib import Path
# 添加当前目录到路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from benchmark.stress_visualizer import generate_stress_visualizations
def main():
# 查找最新的结果文件
stress_dir = Path("./stress_results")
if not stress_dir.exists():
print("❌ stress_results 目录不存在")
return
# 查找 JSON 结果文件
json_files = list(stress_dir.glob("stress_results_*.json"))
if not json_files:
print("❌ 未找到压力测试结果文件")
return
# 使用最新的文件
latest_file = max(json_files, key=lambda x: x.stat().st_mtime)
print("=" * 60)
print("RTX 3050 压力测试可视化报表生成")
print("=" * 60)
print(f"📊 数据源: {latest_file}")
print(f"📁 输出目录: {stress_dir}")
print()
try:
# 检查是否安装了 matplotlib
try:
import matplotlib
import seaborn
import pandas
except ImportError as e:
print("❌ 缺少必要的依赖包,请安装:")
print(" pip install matplotlib seaborn pandas")
return
# 生成图表
print("🎨 正在生成可视化图表...")
chart_files = generate_stress_visualizations(str(latest_file), str(stress_dir))
print(f"\n✅ 成功生成 {len(chart_files)} 个可视化图表:")
print()
chart_descriptions = {
"performance_dashboard.png": "📈 性能概览仪表板",
"cameras_vs_fps.png": "📹 摄像头数量 vs 帧数分析",
"gpu_utilization_analysis.png": "🔥 GPU 利用率深度分析",
"latency_analysis.png": "⏱️ 延迟性能分析",
"frame_skip_analysis.png": "🎯 抽帧策略效果分析",
"deployment_heatmap.png": "🗺️ 部署配置建议热力图",
"bottleneck_analysis.png": "🔍 性能瓶颈深度分析"
}
for chart_file in chart_files:
filename = Path(chart_file).name
description = chart_descriptions.get(filename, "📊 图表")
print(f" {description}")
print(f" 文件: {chart_file}")
print()
print("=" * 60)
print("🎉 可视化报表生成完成!")
print("💡 建议:")
print(" 1. 查看 performance_dashboard.png 获得整体概览")
print(" 2. 查看 bottleneck_analysis.png 了解优化方向")
print(" 3. 查看 deployment_heatmap.png 选择部署配置")
print("=" * 60)
except Exception as e:
print(f"❌ 生成图表时出错: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
main()