Javascript 如何避免Chrome跟踪事件重叠

Javascript 如何避免Chrome跟踪事件重叠,javascript,google-chrome,trace,Javascript,Google Chrome,Trace,我们以跟踪ui格式生成日志事件,很少有相互重叠的情况。它们不会出现在不同的行中。 我如何避免这种重叠?示例跟踪是 { "traceEvents": [ { "pid":1, "tid":1, "ts":87705, "dur":956189, "ph":"X", "name":"Jambase", "args":{ "ms":956.2 } }, { "pid":1, "tid":1, "ts":87755, "dur":956189, "ph":"X", "name":"Jambase2",

我们以跟踪ui格式生成日志事件,很少有相互重叠的情况。它们不会出现在不同的行中。 我如何避免这种重叠?示例跟踪是

{
"traceEvents": [
{ "pid":1, "tid":1, "ts":87705, "dur":956189, "ph":"X", "name":"Jambase", "args":{ "ms":956.2 } },
{ "pid":1, "tid":1, "ts":87755, "dur":956189, "ph":"X", "name":"Jambase2", "args":{ "ms":956.2 } },
{ "pid":1, "tid":1, "ts":128154, "dur":75867, "ph":"X", "name":"SyncTargets", "args":{ "ms":75.9 } },
{ "pid":1, "tid":1, "ts":546867, "dur":121564, "ph":"X", "name":"DoThings", "args":{ "ms":121.6 } }
],
"meta_user": "aras",
"meta_cpu_count": "8"
}
下面是上面跟踪的屏幕截图,其中两个完整事件相互重叠


我认为
chrome://tracing
无法避免这种重叠。在您的示例中,所有数据都属于同一个线程。一个线程不能同时处理多个任务。您可以在生成json时更改重叠元素的
tid
s,使它们显示在不同的行中

我曾经写过一个脚本来满足这个需求。假设
ts
s的顺序是递增的,
N
是最大重叠级别。以下伪代码显示了如何更改重叠元素的
tid
s

n_start = [0] * N
for element in traceEvents:
    for i in range(N):
        if n_start[i] < element['ts']:
            n_start[i] += element['ts'] + element['dur']
            element['tid'] += i
            break
n\u start=[0]*n
对于traceEvents中的元素:
对于范围(N)中的i:
如果n_开始[i]