* Aggregate kernels by name and sort the array in non-ascending order of time. * Return an array of objects with `name` and `timeMs` fields. * * @param {Array } kernels An array of kernel information objects. Each * object must include `name` (string) and `kernelTimeMs` (number) field
(kernels)
| 517 | * object must include `name` (string) and `kernelTimeMs` (number) fields. |
| 518 | */ |
| 519 | function aggregateKernelTime(kernels) { |
| 520 | const aggregatedKernelTime = {}; |
| 521 | kernels.forEach(kernel => { |
| 522 | const oldAggregatedKernelTime = aggregatedKernelTime[kernel.name]; |
| 523 | if (oldAggregatedKernelTime == null) { |
| 524 | aggregatedKernelTime[kernel.name] = kernel.kernelTimeMs; |
| 525 | } else { |
| 526 | aggregatedKernelTime[kernel.name] = |
| 527 | oldAggregatedKernelTime + kernel.kernelTimeMs; |
| 528 | } |
| 529 | }); |
| 530 | |
| 531 | return Object.entries(aggregatedKernelTime) |
| 532 | .map(([name, timeMs]) => ({name, timeMs})) |
| 533 | .sort((a, b) => b.timeMs - a.timeMs); |
| 534 | } |
| 535 | |
| 536 | /** |
| 537 | * This map descripes tunable flags and theior corresponding types. |
no outgoing calls
no test coverage detected
searching dependent graphs…