提交 eaa7cb42 编写于 作者: M MRXLT

add timeline tools to app

上级 a6342f55
......@@ -72,7 +72,7 @@ if __name__ == "__main__":
Usage:
Download a package for serving directly
Example:
python -m paddle_serving_app.models --get senta_bilstm
python -m paddle_serving_app.models --get_model senta_bilstm
python -m paddle_serving_app.models --list_model
""")
pass
#coding=utf-8
import json
import sys
import argparse
def parse_args():
parser = argparse.ArgumentParser("Convert profile log to trace")
parser.add_argument(
"--profile_file",
type=str,
default="",
required=True,
help="Profile log")
parser.add_argument(
"--trace_file", type=str, default="trace", help="Trace file")
return parser.parse_args()
def prase(pid_str, time_str, counter):
pid = pid_str.split(":")[1]
event_list = time_str.split(" ")
trace_list = []
for event in event_list:
name, ts = event.split(":")
name_list = name.split("_")
ph = "B" if (name_list[-1] == "0") else "E"
if len(name_list) == 2:
name = name_list[0]
else:
name = name_list[0] + "_" + name_list[1]
event_dict = {}
event_dict["name"] = name
event_dict["tid"] = 0
event_dict["pid"] = pid
event_dict["ts"] = ts
event_dict["ph"] = ph
trace_list.append(event_dict)
return trace_list
if __name__ == "__main__":
args = parse_args()
profile_file = args.profile_file
trace_file = args.trace_file
all_list = []
counter = 0
with open(profile_file) as f:
for line in f.readlines():
line = line.strip().split("\t")
if line[0] == "PROFILE":
trace_list = prase(line[1], line[2], counter)
counter += 1
for trace in trace_list:
all_list.append(trace)
trace = json.dumps(all_list, indent=2, separators=(',', ':'))
with open(trace_file, "w") as f:
f.write(trace)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册