88 lines
2.9 KiB
Python
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() |