(log)
| 419 | } |
| 420 | |
| 421 | function parseMainPerfSamples(log) { |
| 422 | const samples = [] |
| 423 | const pattern = /\[zen:perf\]\s+([^\s]+)\s+([0-9.]+)ms/g |
| 424 | for (const match of log.matchAll(pattern)) { |
| 425 | samples.push({ |
| 426 | name: match[1], |
| 427 | durationMs: Number.parseFloat(match[2]) |
| 428 | }) |
| 429 | } |
| 430 | return samples |
| 431 | } |
| 432 | |
| 433 | function percentile(values, p) { |
| 434 | if (values.length === 0) return 0 |