性能分析工具代码解析报告
背景
-
• 上次实现了 通过编写脚本的功能来测试 大模型脚本,基于前脚本的完善,读取Excel的数据来生成分析图表 -
• 该工具主要实现了性能数据的加载、分析、可视化和报告生成等核心功能 -
• 核心目标是帮助评估和分析大语言模型在不同测试场景下的性能表现
第1部分:工具架构设计
核心类设计
采用面向对象方式,通过 性能分析脚本 类封装所有功能
实现数据加载、指标计算、可视化和报告生成等模块化功能
使用 logging 模块进行日志管理,提供完整的运行状态跟踪
数据处理流程
支持 Excel 格式的测试数据输入
实现数据预处理和验证,包括时间戳转换、测试类型映射等
自动计算关键性能指标,如吞吐量、响应时间等
def _load_data(self) -> None:
# 读取Excel数据
self.df = pd.read_excel(self.data_file)
# 将时间戳转换为datetime对象
self.df['timestamp'] = pd.to_datetime(self.df['timestamp'])
# 创建测试类型映射并应用
self.df['test_type'] = self.df['test_id'].apply(
lambda x: test_type_map['basic_test'] if x == 'basic_test'else
(test_type_map['long_text_test'] if x == 'long_text_test'else test_type_map['concurrency_test'])
)
# 计算吞吐量
self.df['throughput'] = self.df['total_tokens_generated'] / self.df['total_time']
第2部分:性能指标分析功能
核心性能指标
响应时间分析:总响应时间、最小/最大响应时间
Token 延迟分析:首个 Token 延迟、平均 Token 延迟
吞吐量分析:每秒生成 Token 数
并发性能:请求成功率、每秒请求数等
可视化分析
实现四类核心图表:
1. 测试类型响应时间对比
2. Token 延迟对比分析
3. 吞吐量对比分析
4. 并发测试响应时间趋势
def _calculate_test_type_metrics(self) -> None:
# 按测试类型分组计算多个聚合指标
self.test_type_metrics = self.df.groupby('test_type').agg({
'total_time': ['mean', 'min', 'max'],
'first_token_latency': 'mean',
'avg_token_latency': 'mean',
'total_tokens_generated': 'mean',
'throughput': 'mean'
}).reset_index()
第3部分:输出与报告功能
数据导出能力
支持性能指标导出为 CSV 格式
可视化图表导出为 PNG 格式
提供结构化的性能指标打印输出
测试类型支持
基础测试(Basic Test)
长文本测试(Long Text Test)
并发测试(Concurrency Test)
支持中英文测试类型映射显示
def create_visualizations(self, output_path: str = 'performance_analysis.png') -> Figure:
# 创建2x2的子图布局
fig, axes = plt.subplots(2, 2, figsize=(16, 12))
# 绘制四种不同类型的图表
self._plot_response_time_comparison(axes[0, 0])
self._plot_token_latency_comparison(axes[0, 1])
self._plot_throughput_comparison(axes[1, 0])
self._plot_concurrency_response_time(axes[1, 1])
