Initial commit of LLM speed test app

This commit is contained in:
2026-09-06 11:45:52 +08:00
commit 5544b5f9f9
38 changed files with 8587 additions and 0 deletions
+1528
View File
File diff suppressed because it is too large Load Diff
+78
View File
@@ -0,0 +1,78 @@
{
"version": "1.0",
"timestamp": "2026-08-25T16:39:51.611215",
"run_id": "20260825-163951",
"environment": {
"python_version": "3.13.11",
"platform": "linux",
"model": "deepseek-r1:latest"
},
"config": {
"cases_requested": [
"case_01_generation"
],
"repeats": 1,
"skip_heavy": true,
"total_cases": 1
},
"summary": {
"total_cases": 1,
"passed": 1,
"failed": 0,
"stopped": false,
"total_elapsed_seconds": 4.1
},
"results": [
{
"case_id": "case_01_generation",
"case_name": "纯文本生成基准",
"difficulty": "简单",
"status": "passed",
"raw_data": {
"case_id": "case_01_generation",
"name": "纯文本生成基准",
"description": "基础生成速度基准测试",
"difficulty": "简单",
"estimated_seconds": 5,
"results": [
{
"iteration": 1,
"ttft_ms": 2752.43,
"prefill_ms": 150.91,
"decode_speed_tok_s": 78.35,
"total_tokens": 325,
"prompt_tokens": 25,
"completion_tokens": 300,
"e2e_ms": 4097.45,
"elapsed_ms": 4097.45,
"response_length": 167
}
],
"prompt_used": "请用200字左右概述人工智能从诞生至今的关键发展阶段,每段不超过50字。"
},
"statistics": {
"count": 1,
"mean_ms": 4097.45,
"std_ms": 0.0,
"min_ms": 4097.45,
"max_ms": 4097.45,
"p50_ms": 4097.45,
"p95_ms": 4097.45,
"p99_ms": 4097.45
},
"inference_metrics": {
"ttft_ms_mean": 2752.43,
"ttft_ms_p95": 2752.43,
"prefill_ms_mean": 150.91,
"prefill_ms_p95": 150.91,
"decode_speed_tok_s_mean": 78.35,
"decode_speed_tok_s_p95": 78.35,
"e2e_ms_mean": 4097.45,
"e2e_ms_p95": 4097.45,
"total_tokens_mean": 325.0,
"total_tokens_p95": 325.0
},
"elapsed_seconds": 4.1
}
]
}
+78
View File
@@ -0,0 +1,78 @@
{
"version": "1.0",
"timestamp": "2026-08-25T17:12:00.659272",
"run_id": "20260825-171200",
"environment": {
"python_version": "3.13.11",
"platform": "linux",
"model": "qwen3.6:35b-a3b"
},
"config": {
"cases_requested": [
"case_01_generation"
],
"repeats": 1,
"skip_heavy": false,
"total_cases": 1
},
"summary": {
"total_cases": 1,
"passed": 1,
"failed": 0,
"stopped": false,
"total_elapsed_seconds": 4.79
},
"results": [
{
"case_id": "case_01_generation",
"case_name": "纯文本生成基准",
"difficulty": "简单",
"status": "passed",
"raw_data": {
"case_id": "case_01_generation",
"name": "纯文本生成基准",
"description": "基础生成速度基准测试",
"difficulty": "简单",
"estimated_seconds": 5,
"results": [
{
"iteration": 1,
"ttft_ms": 678.03,
"prefill_ms": 528.43,
"decode_speed_tok_s": 73.07,
"total_tokens": 331,
"prompt_tokens": 31,
"completion_tokens": 300,
"e2e_ms": 4787.47,
"elapsed_ms": 4787.47,
"response_length": 1082
}
],
"prompt_used": "请用200字左右概述人工智能从诞生至今的关键发展阶段,每段不超过50字。"
},
"statistics": {
"count": 1,
"mean_ms": 4787.47,
"std_ms": 0.0,
"min_ms": 4787.47,
"max_ms": 4787.47,
"p50_ms": 4787.47,
"p95_ms": 4787.47,
"p99_ms": 4787.47
},
"inference_metrics": {
"ttft_ms_mean": 678.03,
"ttft_ms_p95": 678.03,
"prefill_ms_mean": 528.43,
"prefill_ms_p95": 528.43,
"decode_speed_tok_s_mean": 73.07,
"decode_speed_tok_s_p95": 73.07,
"e2e_ms_mean": 4787.47,
"e2e_ms_p95": 4787.47,
"total_tokens_mean": 331.0,
"total_tokens_p95": 331.0
},
"elapsed_seconds": 4.79
}
]
}
+562
View File
@@ -0,0 +1,562 @@
{
"version": "1.0",
"timestamp": "2026-08-25T17:25:32.979324",
"run_id": "20260825-172532",
"environment": {
"python_version": "3.13.11",
"platform": "linux",
"model": "qwen3.6:35b-a3b"
},
"config": {
"cases_requested": [
"case_01_generation",
"case_02_simple_tool",
"case_03_file_analysis",
"case_04_parallel_tool",
"case_05_long_context",
"case_06_reasoning",
"case_07_multiturn"
],
"repeats": 2,
"skip_heavy": false,
"total_cases": 7
},
"summary": {
"total_cases": 7,
"passed": 6,
"failed": 1,
"stopped": false,
"total_elapsed_seconds": 357.49
},
"results": [
{
"case_id": "case_01_generation",
"case_name": "纯文本生成基准",
"difficulty": "简单",
"status": "passed",
"raw_data": {
"case_id": "case_01_generation",
"name": "纯文本生成基准",
"description": "基础生成速度基准测试",
"difficulty": "简单",
"estimated_seconds": 5,
"results": [
{
"iteration": 1,
"ttft_ms": 41583.27,
"prefill_ms": 319.34,
"decode_speed_tok_s": 76.72,
"total_tokens": 331,
"prompt_tokens": 31,
"completion_tokens": 300,
"e2e_ms": 45496.03,
"elapsed_ms": 45496.03,
"response_length": 969
},
{
"iteration": 2,
"ttft_ms": 8929.4,
"prefill_ms": 315.75,
"decode_speed_tok_s": 28.7,
"total_tokens": 331,
"prompt_tokens": 31,
"completion_tokens": 300,
"e2e_ms": 19385.96,
"elapsed_ms": 19385.96,
"response_length": 961
}
],
"prompt_used": "请用200字左右概述人工智能从诞生至今的关键发展阶段,每段不超过50字。"
},
"statistics": {
"count": 2,
"mean_ms": 32440.99,
"std_ms": 18462.61,
"min_ms": 19385.96,
"max_ms": 45496.03,
"p50_ms": 32440.99,
"p95_ms": 44190.53,
"p99_ms": 45234.93
},
"inference_metrics": {
"ttft_ms_mean": 25256.33,
"ttft_ms_p95": 39950.58,
"prefill_ms_mean": 317.54,
"prefill_ms_p95": 319.16,
"decode_speed_tok_s_mean": 52.71,
"decode_speed_tok_s_p95": 74.32,
"e2e_ms_mean": 32440.99,
"e2e_ms_p95": 44190.53,
"total_tokens_mean": 331.0,
"total_tokens_p95": 331.0
},
"elapsed_seconds": 64.88
},
{
"case_id": "case_02_simple_tool",
"case_name": "简单工具调用延迟",
"difficulty": "简单",
"status": "passed",
"raw_data": {
"case_id": "case_02_simple_tool",
"name": "简单工具调用延迟",
"description": "测量简单工具调用的额外延迟",
"difficulty": "简单",
"estimated_seconds": 3,
"results": [
{
"iteration": 1,
"ttft_ms": 22079.81,
"prefill_ms": 317.66,
"decode_speed_tok_s": 77.75,
"total_tokens": 121,
"prompt_tokens": 61,
"completion_tokens": 60,
"e2e_ms": 22854.03,
"elapsed_ms": 22854.03,
"response_length": 117,
"tool": "get_date",
"matched": false
},
{
"iteration": 2,
"ttft_ms": 68555.6,
"prefill_ms": 368.48,
"decode_speed_tok_s": 82.77,
"total_tokens": 122,
"prompt_tokens": 62,
"completion_tokens": 60,
"e2e_ms": 69282.23,
"elapsed_ms": 69282.23,
"response_length": 118,
"tool": "get_cpu_usage",
"matched": false
}
]
},
"statistics": {
"count": 2,
"mean_ms": 46068.13,
"std_ms": 32829.7,
"min_ms": 22854.03,
"max_ms": 69282.23,
"p50_ms": 46068.13,
"p95_ms": 66960.82,
"p99_ms": 68817.95
},
"inference_metrics": {
"ttft_ms_mean": 45317.71,
"ttft_ms_p95": 66231.81,
"prefill_ms_mean": 343.07,
"prefill_ms_p95": 365.94,
"decode_speed_tok_s_mean": 80.26,
"decode_speed_tok_s_p95": 82.52,
"e2e_ms_mean": 46068.13,
"e2e_ms_p95": 66960.82,
"total_tokens_mean": 121.5,
"total_tokens_p95": 121.95
},
"elapsed_seconds": 92.14
},
{
"case_id": "case_03_file_analysis",
"case_name": "文件读取+分析",
"difficulty": "中等",
"status": "passed",
"raw_data": {
"case_id": "case_03_file_analysis",
"name": "文件读取+分析",
"description": "文件读取与分析完整链路计时",
"difficulty": "中等",
"estimated_seconds": 2,
"results": [
{
"iteration": 1,
"ttft_ms": 72428.05,
"prefill_ms": 643.53,
"decode_speed_tok_s": 81.45,
"total_tokens": 485,
"prompt_tokens": 185,
"completion_tokens": 300,
"e2e_ms": 76116.09,
"elapsed_ms": 76116.09,
"response_length": 1083,
"file_chars": 485
},
{
"iteration": 2,
"ttft_ms": 233.37,
"prefill_ms": 103.1,
"decode_speed_tok_s": 84.74,
"total_tokens": 485,
"prompt_tokens": 185,
"completion_tokens": 300,
"e2e_ms": 3778.0,
"elapsed_ms": 3778.0,
"response_length": 1111,
"file_chars": 485
}
]
},
"statistics": {
"count": 2,
"mean_ms": 39947.04,
"std_ms": 51150.75,
"min_ms": 3778.0,
"max_ms": 76116.09,
"p50_ms": 39947.04,
"p95_ms": 72499.19,
"p99_ms": 75392.71
},
"inference_metrics": {
"ttft_ms_mean": 36330.71,
"ttft_ms_p95": 68818.32,
"prefill_ms_mean": 373.31,
"prefill_ms_p95": 616.51,
"decode_speed_tok_s_mean": 83.09,
"decode_speed_tok_s_p95": 84.58,
"e2e_ms_mean": 39947.04,
"e2e_ms_p95": 72499.19,
"total_tokens_mean": 485.0,
"total_tokens_p95": 485.0
},
"elapsed_seconds": 79.9
},
{
"case_id": "case_04_parallel_tool",
"case_name": "并行工具调用",
"difficulty": "中等",
"status": "passed",
"raw_data": {
"case_id": "case_04_parallel_tool",
"name": "并行工具调用",
"description": "对比串行 vs 并行工具调用的延迟差异",
"difficulty": "中等",
"estimated_seconds": 5,
"results": [
{
"iteration": 1,
"parallel_tasks": 3,
"serial_ms": 4045.91,
"parallel_ms": 3855.57,
"speedup_ratio": 1.05,
"elapsed_ms": 3855.57,
"avg_ttft_ms": 1662.77,
"avg_decode_speed_tok_s": 84.11,
"ttft_ms": 1662.77,
"decode_speed_tok_s": 84.11
},
{
"iteration": 2,
"parallel_tasks": 3,
"serial_ms": 4303.19,
"parallel_ms": 3989.56,
"speedup_ratio": 1.08,
"elapsed_ms": 3989.56,
"avg_ttft_ms": 1715.28,
"avg_decode_speed_tok_s": 84.17,
"ttft_ms": 1715.28,
"decode_speed_tok_s": 84.17
}
]
},
"statistics": {
"count": 2,
"mean_ms": 3922.57,
"std_ms": 94.75,
"min_ms": 3855.57,
"max_ms": 3989.56,
"p50_ms": 3922.57,
"p95_ms": 3982.86,
"p99_ms": 3988.22
},
"inference_metrics": {
"ttft_ms_mean": 1689.03,
"ttft_ms_p95": 1712.65,
"decode_speed_tok_s_mean": 84.14,
"decode_speed_tok_s_p95": 84.17
},
"elapsed_seconds": 16.19
},
{
"case_id": "case_05_long_context",
"case_name": "长上下文处理",
"difficulty": "耗时",
"status": "passed",
"raw_data": {
"case_id": "case_05_long_context",
"name": "长上下文处理",
"description": "不同上下文长度对延迟的影响",
"difficulty": "耗时",
"estimated_seconds": 10,
"results": [
{
"iteration": 1,
"ttft_ms": 820.58,
"prefill_ms": 804.03,
"decode_speed_tok_s": 77.15,
"total_tokens": 728,
"prompt_tokens": 648,
"completion_tokens": 80,
"e2e_ms": 1866.99,
"elapsed_ms": 1866.99,
"response_length": 319,
"context_tokens_target": 500,
"context_chars": 1254
},
{
"iteration": 2,
"ttft_ms": 70076.71,
"prefill_ms": 97.84,
"decode_speed_tok_s": 77.76,
"total_tokens": 728,
"prompt_tokens": 648,
"completion_tokens": 80,
"e2e_ms": 71112.83,
"elapsed_ms": 71112.83,
"response_length": 319,
"context_tokens_target": 500,
"context_chars": 1254
},
{
"iteration": 1,
"ttft_ms": 1050.97,
"prefill_ms": 1030.17,
"decode_speed_tok_s": 82.71,
"total_tokens": 1355,
"prompt_tokens": 1275,
"completion_tokens": 80,
"e2e_ms": 2030.18,
"elapsed_ms": 2030.18,
"response_length": 319,
"context_tokens_target": 1000,
"context_chars": 2508
},
{
"iteration": 2,
"ttft_ms": 121.85,
"prefill_ms": 100.81,
"decode_speed_tok_s": 81.98,
"total_tokens": 1355,
"prompt_tokens": 1275,
"completion_tokens": 80,
"e2e_ms": 1109.55,
"elapsed_ms": 1109.55,
"response_length": 319,
"context_tokens_target": 1000,
"context_chars": 2508
},
{
"iteration": 1,
"ttft_ms": 2106.57,
"prefill_ms": 2077.92,
"decode_speed_tok_s": 79.78,
"total_tokens": 2628,
"prompt_tokens": 2548,
"completion_tokens": 80,
"e2e_ms": 3132.13,
"elapsed_ms": 3132.13,
"response_length": 331,
"context_tokens_target": 2000,
"context_chars": 5054
},
{
"iteration": 2,
"ttft_ms": 133.36,
"prefill_ms": 105.11,
"decode_speed_tok_s": 81.07,
"total_tokens": 2628,
"prompt_tokens": 2548,
"completion_tokens": 80,
"e2e_ms": 1143.05,
"elapsed_ms": 1143.05,
"response_length": 331,
"context_tokens_target": 2000,
"context_chars": 5054
},
{
"iteration": 1,
"ttft_ms": 3200.13,
"prefill_ms": 3153.14,
"decode_speed_tok_s": 78.66,
"total_tokens": 5155,
"prompt_tokens": 5075,
"completion_tokens": 80,
"e2e_ms": 4259.59,
"elapsed_ms": 4259.59,
"response_length": 331,
"context_tokens_target": 4000,
"context_chars": 10108
},
{
"iteration": 2,
"ttft_ms": 165.67,
"prefill_ms": 117.35,
"decode_speed_tok_s": 79.5,
"total_tokens": 5155,
"prompt_tokens": 5075,
"completion_tokens": 80,
"e2e_ms": 1210.27,
"elapsed_ms": 1210.27,
"response_length": 326,
"context_tokens_target": 4000,
"context_chars": 10108
}
],
"context_sizes_tested": [
500,
1000,
2000,
4000
]
},
"statistics": {
"count": 8,
"mean_ms": 10733.07,
"std_ms": 24421.91,
"min_ms": 1109.55,
"max_ms": 71112.83,
"p50_ms": 1948.59,
"p95_ms": 47714.2,
"p99_ms": 66433.1
},
"inference_metrics": {
"ttft_ms_mean": 9709.48,
"ttft_ms_p95": 46669.91,
"prefill_ms_mean": 935.8,
"prefill_ms_p95": 2776.81,
"decode_speed_tok_s_mean": 79.83,
"decode_speed_tok_s_p95": 82.45,
"e2e_ms_mean": 10733.07,
"e2e_ms_p95": 47714.2,
"total_tokens_mean": 2466.5,
"total_tokens_p95": 5155.0
},
"elapsed_seconds": 85.87
},
{
"case_id": "case_06_reasoning",
"case_name": "复杂推理任务",
"difficulty": "耗时",
"status": "passed",
"raw_data": {
"case_id": "case_06_reasoning",
"name": "复杂推理任务",
"description": "不同推理复杂度下的延迟对比",
"difficulty": "耗时",
"estimated_seconds": 15,
"results": [
{
"iteration": 1,
"ttft_ms": 502.6,
"prefill_ms": 245.68,
"decode_speed_tok_s": 80.34,
"total_tokens": 93,
"prompt_tokens": 13,
"completion_tokens": 80,
"e2e_ms": 1500.12,
"elapsed_ms": 1500.12,
"response_length": 320,
"reasoning_level": "简单问答"
},
{
"iteration": 2,
"ttft_ms": 220.67,
"prefill_ms": 100.19,
"decode_speed_tok_s": 83.2,
"total_tokens": 93,
"prompt_tokens": 13,
"completion_tokens": 80,
"e2e_ms": 1184.6,
"elapsed_ms": 1184.6,
"response_length": 317,
"reasoning_level": "简单问答"
},
{
"iteration": 1,
"ttft_ms": 438.71,
"prefill_ms": 268.76,
"decode_speed_tok_s": 82.97,
"total_tokens": 220,
"prompt_tokens": 20,
"completion_tokens": 200,
"e2e_ms": 2852.11,
"elapsed_ms": 2852.11,
"response_length": 714,
"reasoning_level": "中等推理"
},
{
"iteration": 2,
"ttft_ms": 232.27,
"prefill_ms": 97.91,
"decode_speed_tok_s": 84.27,
"total_tokens": 220,
"prompt_tokens": 20,
"completion_tokens": 200,
"e2e_ms": 2609.32,
"elapsed_ms": 2609.32,
"response_length": 861,
"reasoning_level": "中等推理"
},
{
"iteration": 1,
"ttft_ms": 471.77,
"prefill_ms": 297.05,
"decode_speed_tok_s": 83.04,
"total_tokens": 427,
"prompt_tokens": 27,
"completion_tokens": 400,
"e2e_ms": 5293.99,
"elapsed_ms": 5293.99,
"response_length": 1768,
"reasoning_level": "复杂推理"
},
{
"iteration": 2,
"ttft_ms": 234.98,
"prefill_ms": 101.34,
"decode_speed_tok_s": 82.71,
"total_tokens": 427,
"prompt_tokens": 27,
"completion_tokens": 400,
"e2e_ms": 5076.1,
"elapsed_ms": 5076.1,
"response_length": 1833,
"reasoning_level": "复杂推理"
}
]
},
"statistics": {
"count": 6,
"mean_ms": 3086.04,
"std_ms": 1746.31,
"min_ms": 1184.6,
"max_ms": 5293.99,
"p50_ms": 2730.72,
"p95_ms": 5239.52,
"p99_ms": 5283.1
},
"inference_metrics": {
"ttft_ms_mean": 350.17,
"ttft_ms_p95": 494.89,
"prefill_ms_mean": 185.16,
"prefill_ms_p95": 289.98,
"decode_speed_tok_s_mean": 82.75,
"decode_speed_tok_s_p95": 84.0,
"e2e_ms_mean": 3086.04,
"e2e_ms_p95": 5239.52,
"total_tokens_mean": 246.67,
"total_tokens_p95": 427.0
},
"elapsed_seconds": 18.52
},
{
"case_id": "case_07_multiturn",
"case_name": "多轮对话累积",
"difficulty": "耗时",
"status": "failed",
"error": "run_test() got an unexpected keyword argument 'repeats'",
"elapsed_seconds": 0.0
}
]
}
+35
View File
@@ -0,0 +1,35 @@
{
"version": "1.0",
"timestamp": "2026-08-25T17:27:37.663868",
"run_id": "20260825-172737",
"environment": {
"python_version": "3.13.11",
"platform": "linux",
"model": "qwen3.6:35b-a3b"
},
"config": {
"cases_requested": [
"case_07_multiturn"
],
"repeats": 1,
"skip_heavy": false,
"total_cases": 1
},
"summary": {
"total_cases": 1,
"passed": 0,
"failed": 1,
"stopped": false,
"total_elapsed_seconds": 0.0
},
"results": [
{
"case_id": "case_07_multiturn",
"case_name": "多轮对话累积",
"difficulty": "耗时",
"status": "failed",
"error": "run_test() got an unexpected keyword argument 'repeats'",
"elapsed_seconds": 0.0
}
]
}
+162
View File
@@ -0,0 +1,162 @@
{
"version": "1.0",
"timestamp": "2026-08-25T17:31:46.368856",
"run_id": "20260825-173146",
"environment": {
"python_version": "3.13.11",
"platform": "linux",
"model": "qwen3.6:35b-a3b"
},
"config": {
"cases_requested": [
"case_07_multiturn"
],
"repeats": 1,
"skip_heavy": false,
"total_cases": 1
},
"summary": {
"total_cases": 1,
"passed": 1,
"failed": 0,
"stopped": false,
"total_elapsed_seconds": 129.17
},
"results": [
{
"case_id": "case_07_multiturn",
"case_name": "多轮对话累积",
"difficulty": "耗时",
"status": "passed",
"raw_data": {
"case_id": "case_07_multiturn",
"name": "多轮对话累积",
"description": "追踪连续多轮对话中延迟随上下文累积的变化",
"difficulty": "耗时",
"estimated_seconds": 10,
"results": [
{
"iteration": 1,
"ttft_ms": 330.28,
"prefill_ms": 330.28,
"decode_speed_tok_s": 80.72,
"total_tokens": 153,
"prompt_tokens": 33,
"completion_tokens": 120,
"e2e_ms": 11799.24,
"elapsed_ms": 11799.24,
"response_length": 0,
"round": 1,
"repeat": 1,
"scenario": "修复Python中的索引越界错误",
"messages_in_context": 2
},
{
"iteration": 2,
"ttft_ms": 538.96,
"prefill_ms": 538.96,
"decode_speed_tok_s": 80.95,
"total_tokens": 186,
"prompt_tokens": 66,
"completion_tokens": 120,
"e2e_ms": 11741.17,
"elapsed_ms": 11741.17,
"response_length": 0,
"round": 2,
"repeat": 1,
"scenario": "修复JavaScript闭包变量捕获问题",
"messages_in_context": 4
},
{
"iteration": 3,
"ttft_ms": 447.1,
"prefill_ms": 447.1,
"decode_speed_tok_s": 84.25,
"total_tokens": 216,
"prompt_tokens": 96,
"completion_tokens": 120,
"e2e_ms": 32547.27,
"elapsed_ms": 32547.27,
"response_length": 0,
"round": 3,
"repeat": 1,
"scenario": "修复SQL注入漏洞",
"messages_in_context": 6
},
{
"iteration": 4,
"ttft_ms": 468.91,
"prefill_ms": 468.91,
"decode_speed_tok_s": 84.34,
"total_tokens": 247,
"prompt_tokens": 127,
"completion_tokens": 120,
"e2e_ms": 16912.8,
"elapsed_ms": 16912.8,
"response_length": 0,
"round": 4,
"repeat": 1,
"scenario": "修复多线程竞态条件",
"messages_in_context": 8
},
{
"iteration": 5,
"ttft_ms": 505.76,
"prefill_ms": 505.76,
"decode_speed_tok_s": 80.63,
"total_tokens": 277,
"prompt_tokens": 157,
"completion_tokens": 120,
"e2e_ms": 42758.37,
"elapsed_ms": 42758.37,
"response_length": 0,
"round": 5,
"repeat": 1,
"scenario": "修复递归栈溢出",
"messages_in_context": 10
},
{
"iteration": 6,
"ttft_ms": 467.09,
"prefill_ms": 467.09,
"decode_speed_tok_s": 80.18,
"total_tokens": 308,
"prompt_tokens": 188,
"completion_tokens": 120,
"e2e_ms": 13412.74,
"elapsed_ms": 13412.74,
"response_length": 0,
"round": 6,
"repeat": 1,
"scenario": "修复正则表达式灾难回溯",
"messages_in_context": 12
}
],
"total_rounds": 6
},
"statistics": {
"count": 6,
"mean_ms": 21528.6,
"std_ms": 13036.42,
"min_ms": 11741.17,
"max_ms": 42758.37,
"p50_ms": 15162.77,
"p95_ms": 40205.6,
"p99_ms": 42247.82
},
"inference_metrics": {
"ttft_ms_mean": 459.68,
"ttft_ms_p95": 530.66,
"prefill_ms_mean": 459.68,
"prefill_ms_p95": 530.66,
"decode_speed_tok_s_mean": 81.84,
"decode_speed_tok_s_p95": 84.32,
"e2e_ms_mean": 21528.6,
"e2e_ms_p95": 40205.6,
"total_tokens_mean": 231.17,
"total_tokens_p95": 300.25
},
"elapsed_seconds": 129.17
}
]
}
+785
View File
@@ -0,0 +1,785 @@
{
"version": "1.0",
"timestamp": "2026-08-25T17:44:25.622293",
"run_id": "20260825-174425",
"environment": {
"python_version": "3.13.11",
"platform": "linux",
"model": "qwen3.6:35b-a3b"
},
"config": {
"cases_requested": [
"case_01_generation",
"case_02_simple_tool",
"case_03_file_analysis",
"case_04_parallel_tool",
"case_05_long_context",
"case_06_reasoning",
"case_07_multiturn"
],
"repeats": 2,
"skip_heavy": false,
"total_cases": 7
},
"summary": {
"total_cases": 7,
"passed": 7,
"failed": 0,
"stopped": false,
"total_elapsed_seconds": 728.71
},
"results": [
{
"case_id": "case_01_generation",
"case_name": "纯文本生成基准",
"difficulty": "简单",
"status": "passed",
"raw_data": {
"case_id": "case_01_generation",
"name": "纯文本生成基准",
"description": "基础生成速度基准测试",
"difficulty": "简单",
"estimated_seconds": 5,
"results": [
{
"iteration": 1,
"ttft_ms": 14715.57,
"prefill_ms": 328.38,
"decode_speed_tok_s": 80.65,
"total_tokens": 331,
"prompt_tokens": 31,
"completion_tokens": 300,
"e2e_ms": 18438.39,
"elapsed_ms": 18438.39,
"response_length": 912
},
{
"iteration": 2,
"ttft_ms": 13780.79,
"prefill_ms": 338.35,
"decode_speed_tok_s": 79.88,
"total_tokens": 331,
"prompt_tokens": 31,
"completion_tokens": 300,
"e2e_ms": 17539.77,
"elapsed_ms": 17539.77,
"response_length": 988
}
],
"prompt_used": "请用200字左右概述人工智能从诞生至今的关键发展阶段,每段不超过50字。"
},
"statistics": {
"count": 2,
"mean_ms": 17989.08,
"std_ms": 635.42,
"min_ms": 17539.77,
"max_ms": 18438.39,
"p50_ms": 17989.08,
"p95_ms": 18393.46,
"p99_ms": 18429.4
},
"inference_metrics": {
"ttft_ms_mean": 14248.18,
"ttft_ms_p95": 14668.83,
"prefill_ms_mean": 333.37,
"prefill_ms_p95": 337.85,
"decode_speed_tok_s_mean": 80.27,
"decode_speed_tok_s_p95": 80.61,
"e2e_ms_mean": 17989.08,
"e2e_ms_p95": 18393.46,
"total_tokens_mean": 331.0,
"total_tokens_p95": 331.0
},
"elapsed_seconds": 35.98
},
{
"case_id": "case_02_simple_tool",
"case_name": "简单工具调用延迟",
"difficulty": "简单",
"status": "passed",
"raw_data": {
"case_id": "case_02_simple_tool",
"name": "简单工具调用延迟",
"description": "测量简单工具调用的额外延迟",
"difficulty": "简单",
"estimated_seconds": 3,
"results": [
{
"iteration": 1,
"ttft_ms": 16196.0,
"prefill_ms": 282.79,
"decode_speed_tok_s": 84.08,
"total_tokens": 83,
"prompt_tokens": 61,
"completion_tokens": 22,
"e2e_ms": 16459.21,
"elapsed_ms": 16459.21,
"response_length": 60,
"tool": "get_date",
"matched": false
},
{
"iteration": 2,
"ttft_ms": 14408.31,
"prefill_ms": 289.76,
"decode_speed_tok_s": 81.91,
"total_tokens": 122,
"prompt_tokens": 62,
"completion_tokens": 60,
"e2e_ms": 15142.91,
"elapsed_ms": 15142.91,
"response_length": 117,
"tool": "get_cpu_usage",
"matched": false
}
]
},
"statistics": {
"count": 2,
"mean_ms": 15801.06,
"std_ms": 930.76,
"min_ms": 15142.91,
"max_ms": 16459.21,
"p50_ms": 15801.06,
"p95_ms": 16393.4,
"p99_ms": 16446.05
},
"inference_metrics": {
"ttft_ms_mean": 15302.15,
"ttft_ms_p95": 16106.62,
"prefill_ms_mean": 286.27,
"prefill_ms_p95": 289.41,
"decode_speed_tok_s_mean": 83.0,
"decode_speed_tok_s_p95": 83.97,
"e2e_ms_mean": 15801.06,
"e2e_ms_p95": 16393.4,
"total_tokens_mean": 102.5,
"total_tokens_p95": 120.05
},
"elapsed_seconds": 31.6
},
{
"case_id": "case_03_file_analysis",
"case_name": "文件读取+分析",
"difficulty": "中等",
"status": "passed",
"raw_data": {
"case_id": "case_03_file_analysis",
"name": "文件读取+分析",
"description": "文件读取与分析完整链路计时",
"difficulty": "中等",
"estimated_seconds": 2,
"results": [
{
"iteration": 1,
"ttft_ms": 4497.2,
"prefill_ms": 96.54,
"decode_speed_tok_s": 81.86,
"total_tokens": 485,
"prompt_tokens": 185,
"completion_tokens": 300,
"e2e_ms": 8166.59,
"elapsed_ms": 8166.59,
"response_length": 1122,
"file_chars": 485
},
{
"iteration": 2,
"ttft_ms": 30717.41,
"prefill_ms": 103.84,
"decode_speed_tok_s": 79.84,
"total_tokens": 485,
"prompt_tokens": 185,
"completion_tokens": 300,
"e2e_ms": 34478.78,
"elapsed_ms": 34478.78,
"response_length": 1075,
"file_chars": 485
}
]
},
"statistics": {
"count": 2,
"mean_ms": 21322.68,
"std_ms": 18605.53,
"min_ms": 8166.59,
"max_ms": 34478.78,
"p50_ms": 21322.68,
"p95_ms": 33163.17,
"p99_ms": 34215.66
},
"inference_metrics": {
"ttft_ms_mean": 17607.31,
"ttft_ms_p95": 29406.4,
"prefill_ms_mean": 100.19,
"prefill_ms_p95": 103.47,
"decode_speed_tok_s_mean": 80.85,
"decode_speed_tok_s_p95": 81.76,
"e2e_ms_mean": 21322.68,
"e2e_ms_p95": 33163.17,
"total_tokens_mean": 485.0,
"total_tokens_p95": 485.0
},
"elapsed_seconds": 42.65
},
{
"case_id": "case_04_parallel_tool",
"case_name": "并行工具调用",
"difficulty": "中等",
"status": "passed",
"raw_data": {
"case_id": "case_04_parallel_tool",
"name": "并行工具调用",
"description": "对比串行 vs 并行工具调用的延迟差异",
"difficulty": "中等",
"estimated_seconds": 5,
"results": [
{
"iteration": 1,
"parallel_tasks": 3,
"serial_ms": 37309.93,
"parallel_ms": 45353.04,
"speedup_ratio": 0.82,
"elapsed_ms": 45353.04,
"avg_ttft_ms": 43165.98,
"avg_decode_speed_tok_s": 83.01,
"ttft_ms": 43165.98,
"decode_speed_tok_s": 83.01
},
{
"iteration": 2,
"parallel_tasks": 3,
"serial_ms": 30577.28,
"parallel_ms": 10193.83,
"speedup_ratio": 3.0,
"elapsed_ms": 10193.83,
"avg_ttft_ms": 7917.49,
"avg_decode_speed_tok_s": 81.22,
"ttft_ms": 7917.49,
"decode_speed_tok_s": 81.22
}
]
},
"statistics": {
"count": 2,
"mean_ms": 27773.44,
"std_ms": 24861.32,
"min_ms": 10193.83,
"max_ms": 45353.04,
"p50_ms": 27773.44,
"p95_ms": 43595.08,
"p99_ms": 45001.45
},
"inference_metrics": {
"ttft_ms_mean": 25541.74,
"ttft_ms_p95": 41403.56,
"decode_speed_tok_s_mean": 82.12,
"decode_speed_tok_s_p95": 82.92
},
"elapsed_seconds": 123.43
},
{
"case_id": "case_05_long_context",
"case_name": "长上下文处理",
"difficulty": "耗时",
"status": "passed",
"raw_data": {
"case_id": "case_05_long_context",
"name": "长上下文处理",
"description": "不同上下文长度对延迟的影响",
"difficulty": "耗时",
"estimated_seconds": 10,
"results": [
{
"iteration": 1,
"ttft_ms": 5375.1,
"prefill_ms": 842.82,
"decode_speed_tok_s": 80.26,
"total_tokens": 728,
"prompt_tokens": 648,
"completion_tokens": 80,
"e2e_ms": 6378.84,
"elapsed_ms": 6378.84,
"response_length": 319,
"context_tokens_target": 500,
"context_chars": 1254
},
{
"iteration": 2,
"ttft_ms": 57883.93,
"prefill_ms": 95.78,
"decode_speed_tok_s": 83.77,
"total_tokens": 728,
"prompt_tokens": 648,
"completion_tokens": 80,
"e2e_ms": 58844.25,
"elapsed_ms": 58844.25,
"response_length": 319,
"context_tokens_target": 500,
"context_chars": 1254
},
{
"iteration": 1,
"ttft_ms": 14493.28,
"prefill_ms": 1041.01,
"decode_speed_tok_s": 81.17,
"total_tokens": 1355,
"prompt_tokens": 1275,
"completion_tokens": 80,
"e2e_ms": 15491.6,
"elapsed_ms": 15491.6,
"response_length": 315,
"context_tokens_target": 1000,
"context_chars": 2508
},
{
"iteration": 2,
"ttft_ms": 88553.55,
"prefill_ms": 102.99,
"decode_speed_tok_s": 82.75,
"total_tokens": 1355,
"prompt_tokens": 1275,
"completion_tokens": 80,
"e2e_ms": 89532.55,
"elapsed_ms": 89532.55,
"response_length": 319,
"context_tokens_target": 1000,
"context_chars": 2508
},
{
"iteration": 1,
"ttft_ms": 19499.27,
"prefill_ms": 1513.23,
"decode_speed_tok_s": 80.77,
"total_tokens": 2628,
"prompt_tokens": 2548,
"completion_tokens": 80,
"e2e_ms": 20512.64,
"elapsed_ms": 20512.64,
"response_length": 331,
"context_tokens_target": 2000,
"context_chars": 5054
},
{
"iteration": 2,
"ttft_ms": 11929.32,
"prefill_ms": 114.78,
"decode_speed_tok_s": 77.52,
"total_tokens": 2628,
"prompt_tokens": 2548,
"completion_tokens": 80,
"e2e_ms": 12983.72,
"elapsed_ms": 12983.72,
"response_length": 329,
"context_tokens_target": 2000,
"context_chars": 5054
},
{
"iteration": 1,
"ttft_ms": 14999.33,
"prefill_ms": 3185.49,
"decode_speed_tok_s": 79.84,
"total_tokens": 5155,
"prompt_tokens": 5075,
"completion_tokens": 80,
"e2e_ms": 16042.1,
"elapsed_ms": 16042.1,
"response_length": 329,
"context_tokens_target": 4000,
"context_chars": 10108
},
{
"iteration": 2,
"ttft_ms": 9751.38,
"prefill_ms": 116.54,
"decode_speed_tok_s": 83.8,
"total_tokens": 5155,
"prompt_tokens": 5075,
"completion_tokens": 80,
"e2e_ms": 10748.62,
"elapsed_ms": 10748.62,
"response_length": 331,
"context_tokens_target": 4000,
"context_chars": 10108
}
],
"context_sizes_tested": [
500,
1000,
2000,
4000
]
},
"statistics": {
"count": 8,
"mean_ms": 28816.79,
"std_ms": 29467.59,
"min_ms": 6378.84,
"max_ms": 89532.55,
"p50_ms": 15766.85,
"p95_ms": 78791.64,
"p99_ms": 87384.37
},
"inference_metrics": {
"ttft_ms_mean": 27810.65,
"ttft_ms_p95": 77819.18,
"prefill_ms_mean": 876.58,
"prefill_ms_p95": 2600.2,
"decode_speed_tok_s_mean": 81.23,
"decode_speed_tok_s_p95": 83.79,
"e2e_ms_mean": 28816.79,
"e2e_ms_p95": 78791.64,
"total_tokens_mean": 2466.5,
"total_tokens_p95": 5155.0
},
"elapsed_seconds": 230.54
},
{
"case_id": "case_06_reasoning",
"case_name": "复杂推理任务",
"difficulty": "耗时",
"status": "passed",
"raw_data": {
"case_id": "case_06_reasoning",
"name": "复杂推理任务",
"description": "不同推理复杂度下的延迟对比",
"difficulty": "耗时",
"estimated_seconds": 15,
"results": [
{
"iteration": 1,
"ttft_ms": 17139.94,
"prefill_ms": 284.82,
"decode_speed_tok_s": 81.61,
"total_tokens": 93,
"prompt_tokens": 13,
"completion_tokens": 80,
"e2e_ms": 18122.0,
"elapsed_ms": 18122.0,
"response_length": 314,
"reasoning_level": "简单问答"
},
{
"iteration": 2,
"ttft_ms": 47602.11,
"prefill_ms": 285.31,
"decode_speed_tok_s": 80.04,
"total_tokens": 93,
"prompt_tokens": 13,
"completion_tokens": 80,
"e2e_ms": 48603.85,
"elapsed_ms": 48603.85,
"response_length": 313,
"reasoning_level": "简单问答"
},
{
"iteration": 1,
"ttft_ms": 10822.25,
"prefill_ms": 315.46,
"decode_speed_tok_s": 82.22,
"total_tokens": 220,
"prompt_tokens": 20,
"completion_tokens": 200,
"e2e_ms": 13257.81,
"elapsed_ms": 13257.81,
"response_length": 811,
"reasoning_level": "中等推理"
},
{
"iteration": 2,
"ttft_ms": 20657.36,
"prefill_ms": 314.18,
"decode_speed_tok_s": 80.9,
"total_tokens": 220,
"prompt_tokens": 20,
"completion_tokens": 200,
"e2e_ms": 23132.11,
"elapsed_ms": 23132.11,
"response_length": 745,
"reasoning_level": "中等推理"
},
{
"iteration": 1,
"ttft_ms": 8117.27,
"prefill_ms": 335.93,
"decode_speed_tok_s": 82.11,
"total_tokens": 427,
"prompt_tokens": 27,
"completion_tokens": 400,
"e2e_ms": 12993.07,
"elapsed_ms": 12993.07,
"response_length": 1762,
"reasoning_level": "复杂推理"
},
{
"iteration": 2,
"ttft_ms": 6073.91,
"prefill_ms": 333.3,
"decode_speed_tok_s": 81.79,
"total_tokens": 427,
"prompt_tokens": 27,
"completion_tokens": 400,
"e2e_ms": 10969.79,
"elapsed_ms": 10969.79,
"response_length": 1809,
"reasoning_level": "复杂推理"
}
]
},
"statistics": {
"count": 6,
"mean_ms": 21179.77,
"std_ms": 14136.94,
"min_ms": 10969.79,
"max_ms": 48603.85,
"p50_ms": 15689.9,
"p95_ms": 42235.91,
"p99_ms": 47330.26
},
"inference_metrics": {
"ttft_ms_mean": 18402.14,
"ttft_ms_p95": 40865.92,
"prefill_ms_mean": 311.5,
"prefill_ms_p95": 335.27,
"decode_speed_tok_s_mean": 81.45,
"decode_speed_tok_s_p95": 82.19,
"e2e_ms_mean": 21179.77,
"e2e_ms_p95": 42235.91,
"total_tokens_mean": 246.67,
"total_tokens_p95": 427.0
},
"elapsed_seconds": 127.08
},
{
"case_id": "case_07_multiturn",
"case_name": "多轮对话累积",
"difficulty": "耗时",
"status": "passed",
"raw_data": {
"case_id": "case_07_multiturn",
"name": "多轮对话累积",
"description": "追踪连续多轮对话中延迟随上下文累积的变化",
"difficulty": "耗时",
"estimated_seconds": 10,
"results": [
{
"iteration": 1,
"ttft_ms": 352.84,
"prefill_ms": 352.84,
"decode_speed_tok_s": 81.88,
"total_tokens": 153,
"prompt_tokens": 33,
"completion_tokens": 120,
"e2e_ms": 7458.81,
"elapsed_ms": 7458.81,
"response_length": 0,
"round": 1,
"repeat": 1,
"scenario": "修复Python中的索引越界错误",
"messages_in_context": 2
},
{
"iteration": 2,
"ttft_ms": 570.91,
"prefill_ms": 570.91,
"decode_speed_tok_s": 83.44,
"total_tokens": 186,
"prompt_tokens": 66,
"completion_tokens": 120,
"e2e_ms": 9924.72,
"elapsed_ms": 9924.72,
"response_length": 0,
"round": 2,
"repeat": 1,
"scenario": "修复JavaScript闭包变量捕获问题",
"messages_in_context": 4
},
{
"iteration": 3,
"ttft_ms": 592.78,
"prefill_ms": 592.78,
"decode_speed_tok_s": 80.86,
"total_tokens": 216,
"prompt_tokens": 96,
"completion_tokens": 120,
"e2e_ms": 8754.91,
"elapsed_ms": 8754.91,
"response_length": 0,
"round": 3,
"repeat": 1,
"scenario": "修复SQL注入漏洞",
"messages_in_context": 6
},
{
"iteration": 4,
"ttft_ms": 468.43,
"prefill_ms": 468.43,
"decode_speed_tok_s": 83.91,
"total_tokens": 247,
"prompt_tokens": 127,
"completion_tokens": 120,
"e2e_ms": 8867.78,
"elapsed_ms": 8867.78,
"response_length": 0,
"round": 4,
"repeat": 1,
"scenario": "修复多线程竞态条件",
"messages_in_context": 8
},
{
"iteration": 5,
"ttft_ms": 472.24,
"prefill_ms": 472.24,
"decode_speed_tok_s": 81.92,
"total_tokens": 277,
"prompt_tokens": 157,
"completion_tokens": 120,
"e2e_ms": 9069.2,
"elapsed_ms": 9069.2,
"response_length": 0,
"round": 5,
"repeat": 1,
"scenario": "修复递归栈溢出",
"messages_in_context": 10
},
{
"iteration": 6,
"ttft_ms": 496.68,
"prefill_ms": 496.68,
"decode_speed_tok_s": 83.06,
"total_tokens": 308,
"prompt_tokens": 188,
"completion_tokens": 120,
"e2e_ms": 9110.29,
"elapsed_ms": 9110.29,
"response_length": 0,
"round": 6,
"repeat": 1,
"scenario": "修复正则表达式灾难回溯",
"messages_in_context": 12
},
{
"iteration": 7,
"ttft_ms": 356.02,
"prefill_ms": 356.02,
"decode_speed_tok_s": 82.34,
"total_tokens": 153,
"prompt_tokens": 33,
"completion_tokens": 120,
"e2e_ms": 9302.89,
"elapsed_ms": 9302.89,
"response_length": 0,
"round": 1,
"repeat": 2,
"scenario": "修复Python中的索引越界错误",
"messages_in_context": 2
},
{
"iteration": 8,
"ttft_ms": 105.61,
"prefill_ms": 105.61,
"decode_speed_tok_s": 80.39,
"total_tokens": 186,
"prompt_tokens": 66,
"completion_tokens": 120,
"e2e_ms": 9569.96,
"elapsed_ms": 9569.96,
"response_length": 0,
"round": 2,
"repeat": 2,
"scenario": "修复JavaScript闭包变量捕获问题",
"messages_in_context": 4
},
{
"iteration": 9,
"ttft_ms": 596.24,
"prefill_ms": 596.24,
"decode_speed_tok_s": 78.49,
"total_tokens": 216,
"prompt_tokens": 96,
"completion_tokens": 120,
"e2e_ms": 9446.57,
"elapsed_ms": 9446.57,
"response_length": 0,
"round": 3,
"repeat": 2,
"scenario": "修复SQL注入漏洞",
"messages_in_context": 6
},
{
"iteration": 10,
"ttft_ms": 468.0,
"prefill_ms": 468.0,
"decode_speed_tok_s": 81.77,
"total_tokens": 247,
"prompt_tokens": 127,
"completion_tokens": 120,
"e2e_ms": 7437.1,
"elapsed_ms": 7437.1,
"response_length": 0,
"round": 4,
"repeat": 2,
"scenario": "修复多线程竞态条件",
"messages_in_context": 8
},
{
"iteration": 11,
"ttft_ms": 470.8,
"prefill_ms": 470.8,
"decode_speed_tok_s": 81.38,
"total_tokens": 277,
"prompt_tokens": 157,
"completion_tokens": 120,
"e2e_ms": 22114.83,
"elapsed_ms": 22114.83,
"response_length": 0,
"round": 5,
"repeat": 2,
"scenario": "修复递归栈溢出",
"messages_in_context": 10
},
{
"iteration": 12,
"ttft_ms": 503.16,
"prefill_ms": 503.16,
"decode_speed_tok_s": 81.86,
"total_tokens": 308,
"prompt_tokens": 188,
"completion_tokens": 120,
"e2e_ms": 26371.35,
"elapsed_ms": 26371.35,
"response_length": 0,
"round": 6,
"repeat": 2,
"scenario": "修复正则表达式灾难回溯",
"messages_in_context": 12
}
],
"total_rounds": 12
},
"statistics": {
"count": 12,
"mean_ms": 11452.37,
"std_ms": 6090.06,
"min_ms": 7437.1,
"max_ms": 26371.35,
"p50_ms": 9206.59,
"p95_ms": 24030.26,
"p99_ms": 25903.13
},
"inference_metrics": {
"ttft_ms_mean": 454.48,
"ttft_ms_p95": 594.34,
"prefill_ms_mean": 454.48,
"prefill_ms_p95": 594.34,
"decode_speed_tok_s_mean": 81.77,
"decode_speed_tok_s_p95": 83.65,
"e2e_ms_mean": 11452.37,
"e2e_ms_p95": 24030.26,
"total_tokens_mean": 231.17,
"total_tokens_p95": 308.0
},
"elapsed_seconds": 137.43
}
]
}
+268
View File
@@ -0,0 +1,268 @@
{
"version": "1.0",
"timestamp": "2026-08-26T00:43:28.377694",
"run_id": "20260826-004328",
"environment": {
"python_version": "3.12.0",
"platform": "win32",
"model": "Q3.6-35B-A3B-Orig-Thi",
"backend": "openai"
},
"config": {
"cases_requested": [
"case_01_generation",
"case_08_concurrency"
],
"repeats": 1,
"skip_heavy": false,
"total_cases": 2
},
"summary": {
"total_cases": 2,
"passed": 2,
"failed": 0,
"stopped": false,
"total_elapsed_seconds": 16.39
},
"results": [
{
"case_id": "case_01_generation",
"case_name": "纯文本生成基准",
"difficulty": "简单",
"status": "passed",
"raw_data": {
"case_id": "case_01_generation",
"name": "纯文本生成基准",
"description": "基础生成速度基准测试",
"difficulty": "简单",
"estimated_seconds": 5,
"results": [
{
"iteration": 1,
"ttft_ms": 1469.4,
"prefill_ms": 176.92,
"decode_speed_tok_s": 56.05,
"total_tokens": 331,
"prompt_tokens": 31,
"completion_tokens": 300,
"e2e_ms": 5781.87,
"elapsed_ms": 5781.87,
"response_length": 931
}
],
"prompt_used": "请用200字左右概述人工智能从诞生至今的关键发展阶段,每段不超过50字。"
},
"statistics": {
"count": 1,
"mean_ms": 5781.87,
"std_ms": 0.0,
"min_ms": 5781.87,
"max_ms": 5781.87,
"p50_ms": 5781.87,
"p95_ms": 5781.87,
"p99_ms": 5781.87
},
"inference_metrics": {
"ttft_ms_mean": 1469.4,
"ttft_ms_p95": 1469.4,
"prefill_ms_mean": 176.92,
"prefill_ms_p95": 176.92,
"e2e_ms_mean": 5781.87,
"e2e_ms_p95": 5781.87,
"decode_speed_tok_s_mean": 56.05,
"decode_speed_tok_s_p95": 56.05,
"total_tokens_mean": 331.0,
"total_tokens_p95": 331
},
"elapsed_seconds": 5.78
},
{
"case_id": "case_08_concurrency",
"case_name": "并发压力测试",
"difficulty": "压力",
"status": "passed",
"raw_data": {
"case_id": "case_08_concurrency",
"name": "并发压力测试",
"description": "高并发下的 TPS 保持率、P95/P99 延迟、错误率",
"difficulty": "压力",
"estimated_seconds": 30,
"results": [
{
"iteration": 1,
"ttft_ms": 47.68,
"prefill_ms": 47.68,
"decode_speed_tok_s": 39.99,
"total_tokens": 36,
"prompt_tokens": 4,
"completion_tokens": 32,
"e2e_ms": 1737.06,
"elapsed_ms": 1737.06,
"response_length": 91,
"batch": "concurrent",
"error": ""
},
{
"iteration": 2,
"ttft_ms": 68.83,
"prefill_ms": 68.83,
"decode_speed_tok_s": 36.31,
"total_tokens": 36,
"prompt_tokens": 4,
"completion_tokens": 32,
"e2e_ms": 1984.56,
"elapsed_ms": 1984.56,
"response_length": 91,
"batch": "concurrent",
"error": ""
},
{
"iteration": 3,
"ttft_ms": 66.03,
"prefill_ms": 66.03,
"decode_speed_tok_s": 39.33,
"total_tokens": 36,
"prompt_tokens": 4,
"completion_tokens": 32,
"e2e_ms": 2687.98,
"elapsed_ms": 2687.98,
"response_length": 91,
"batch": "concurrent",
"error": ""
},
{
"iteration": 4,
"ttft_ms": 67.81,
"prefill_ms": 67.81,
"decode_speed_tok_s": 39.4,
"total_tokens": 36,
"prompt_tokens": 4,
"completion_tokens": 32,
"e2e_ms": 2873.81,
"elapsed_ms": 2873.81,
"response_length": 91,
"batch": "concurrent",
"error": ""
},
{
"iteration": 5,
"ttft_ms": 66.02,
"prefill_ms": 66.02,
"decode_speed_tok_s": 39.32,
"total_tokens": 36,
"prompt_tokens": 4,
"completion_tokens": 32,
"e2e_ms": 3567.66,
"elapsed_ms": 3567.66,
"response_length": 91,
"batch": "concurrent",
"error": ""
},
{
"iteration": 6,
"ttft_ms": 67.78,
"prefill_ms": 67.78,
"decode_speed_tok_s": 39.37,
"total_tokens": 36,
"prompt_tokens": 4,
"completion_tokens": 32,
"e2e_ms": 3751.12,
"elapsed_ms": 3751.12,
"response_length": 91,
"batch": "concurrent",
"error": ""
},
{
"iteration": 7,
"ttft_ms": 66.06,
"prefill_ms": 66.06,
"decode_speed_tok_s": 39.32,
"total_tokens": 36,
"prompt_tokens": 4,
"completion_tokens": 32,
"e2e_ms": 4435.97,
"elapsed_ms": 4435.97,
"response_length": 91,
"batch": "concurrent",
"error": ""
},
{
"iteration": 8,
"ttft_ms": 67.75,
"prefill_ms": 67.75,
"decode_speed_tok_s": 39.41,
"total_tokens": 36,
"prompt_tokens": 4,
"completion_tokens": 32,
"e2e_ms": 4628.97,
"elapsed_ms": 4628.97,
"response_length": 91,
"batch": "concurrent",
"error": ""
},
{
"iteration": 9,
"ttft_ms": 65.95,
"prefill_ms": 65.95,
"decode_speed_tok_s": 39.36,
"total_tokens": 36,
"prompt_tokens": 4,
"completion_tokens": 32,
"e2e_ms": 5330.84,
"elapsed_ms": 5330.84,
"response_length": 91,
"batch": "concurrent",
"error": ""
},
{
"iteration": 10,
"ttft_ms": 67.72,
"prefill_ms": 67.72,
"decode_speed_tok_s": 43.93,
"total_tokens": 36,
"prompt_tokens": 4,
"completion_tokens": 32,
"e2e_ms": 5430.27,
"elapsed_ms": 5430.27,
"response_length": 91,
"batch": "concurrent",
"error": ""
}
],
"concurrency": 10,
"baseline_tps": 57.41,
"concurrent_tps": 39.57,
"tps_keep_rate_pct": 68.93,
"e2e_p50_ms": 3659.39,
"e2e_p95_ms": 5385.53,
"e2e_p99_ms": 5421.32,
"success_count": 10,
"failed_count": 0,
"error_rate_pct": 0.0
},
"statistics": {
"count": 10,
"mean_ms": 3642.82,
"std_ms": 1314.37,
"min_ms": 1737.06,
"max_ms": 5430.27,
"p50_ms": 3659.39,
"p95_ms": 5385.53,
"p99_ms": 5421.32
},
"inference_metrics": {
"ttft_ms_mean": 65.16,
"ttft_ms_p95": 68.37,
"prefill_ms_mean": 65.16,
"prefill_ms_p95": 68.37,
"e2e_ms_mean": 3642.82,
"e2e_ms_p95": 5385.53,
"decode_speed_tok_s_mean": 39.57,
"decode_speed_tok_s_p95": 42.16,
"total_tokens_mean": 36.0,
"total_tokens_p95": 36.0
},
"elapsed_seconds": 10.61
}
]
}
File diff suppressed because it is too large Load Diff