打开有systrace生成的网页 trace.html,显示空白

本文详细指导如何在Chrome浏览器中解决systrace生成的trace.html文件打开为空白的问题,步骤包括取消阻止第三方Cookie并提供相关参考链接。
部署运行你感兴趣的模型镜像

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

import json import re from bs4 import BeautifulSoup import matplotlib.pyplot as plt import os import sys def parse_systrace_html(html_path): """解析systrace.html文件,提取跟踪事件数据""" with open(html_path, 'r', encoding='utf-8') as f: html_content = f.read() soup = BeautifulSoup(html_content, 'html.parser') script_tag = soup.find('script', id='trace-data-json') if not script_tag: raise ValueError("未找到trace数据,检查文件格式") return json.loads(script_tag.string) def find_keyword_timestamps(events, keywords): """查找关键字首次出现的时间戳""" timestamps = {kw: None for kw in keywords} found_count = 0 for event in events: name = event.get('name', '') ts = event.get('ts', None) if ts is None: continue for kw in keywords: if timestamps[kw] is None and kw in name: timestamps[kw] = ts found_count += 1 if found_count == len(keywords): return timestamps return timestamps def calculate_intervals(timestamps): """计算关键字之间的时间间隔""" keywords = list(timestamps.keys()) intervals = [] for i in range(1, len(keywords)): prev_key = keywords[i-1] curr_key = keywords[i] if timestamps[prev_key] is not None and timestamps[curr_key] is not None: interval = abs(timestamps[curr_key] - timestamps[prev_key]) intervals.append({ 'from': prev_key, 'to': curr_key, 'interval_us': interval, 'interval_ms': interval / 1000 }) else: intervals.append({ 'from': prev_key, 'to': curr_key, 'interval_us': None, 'interval_ms': None }) return intervals def visualize_intervals(intervals, html_path): """可视化时间间隔结果""" labels = [] values = [] for interval in intervals: if interval['interval_ms'] is not None: label = f"{interval['from']} → {interval['to']}" labels.append(label) values.append(interval['interval_ms']) if not labels: print("无有效数据可绘制图表") return plt.figure(figsize=(12, 6)) bars = plt.bar(labels, values, color='skyblue') plt.ylabel('时间间隔 (ms)') plt.title(f'Systrace关键字时间间隔分析: {os.path.basename(html_path)}') plt.xticks(rotation=45, ha='right') # 在柱状图上显示数值 for bar in bars: height = bar.get_height() plt.text(bar.get_x() + bar.get_width()/2., height, f'{height:.2f} ms', ha='center', va='bottom', fontsize=9) plt.tight_layout() plt.savefig('systrace_intervals.png', dpi=150) print("已生成可视化图表: systrace_intervals.png") def analyze_systrace_intervals(html_path, keywords): """主函数:分析systrace中多个关键字的时间间隔""" # 1. 解析HTML文件 trace_data = parse_systrace_html(html_path) events = trace_data.get('traceEvents', []) # 2. 查找关键字时间戳 timestamps = find_keyword_timestamps(events, keywords) # 3. 检查未找到的关键字 not_found = [kw for kw, ts in timestamps.items() if ts is None] if not_found: print(f"警告: 未找到以下关键字: {', '.join(not_found)}") # 4. 计算时间间隔 intervals = calculate_intervals(timestamps) # 5. 打印结果 print("\n关键字时间间隔分析结果:") print("=" * 60) print(f"{'起始关键字':<20} {'结束关键字':<20} {'时间间隔(µs)':<15} {'时间间隔(ms)':<15}") print("-" * 60) for interval in intervals: if interval['interval_us'] is not None: print(f"{interval['from']:<20} {interval['to']:<20} {interval['interval_us']:<15} {interval['interval_ms']:.2f}") else: print(f"{interval['from']:<20} {interval['to']:<20} {'N/A':<15} {'N/A':<15}") # 6. 可视化结果 visualize_intervals(intervals, html_path) return intervals # 使用示例 if __name__ == "__main__": if len(sys.argv) != 2: print("Usage: python pFtraceParseKeyTime.py <text_file>") print("Example: python pFtraceParseKeyTime.py camera_trace.txt") sys.exit(1) html_path = sys.argv[1] # 定义要分析的关键字序列 keywords = [ 'CameraCapturePerformance.onShutterButtonClick', # 应用启动开始 'CameraTest loaded full image from', # 布局加载 ] # 执行分析 results = analyze_systrace_intervals(html_path, keywords) python pFtraceParseKeyTimeMultiKey.py 2025-10-18-10-38-53-perfetto-con.html Traceback (most recent call last): File "pFtraceParseKeyTimeMultiKey.py", line 149, in <module> results = analyze_systrace_intervals(html_path, keywords) File "pFtraceParseKeyTimeMultiKey.py", line 102, in analyze_systrace_intervals trace_data = parse_systrace_html(html_path) File "pFtraceParseKeyTimeMultiKey.py", line 16, in parse_systrace_html raise ValueError("未找到trace数据,检查文件格式") ValueError: 未找到trace数据,检查文件格式
10-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值