(stats: {
lineLength: number
clusteredChars: number
cacheHit: boolean
usedPlainAsciiFastPath: boolean
materializeDurationMs: number
writeLineDurationMs: number
writeLoopDurationMs: number
})
| 181 | } |
| 182 | |
| 183 | export function recordWriteLineToScreenStats(stats: { |
| 184 | lineLength: number |
| 185 | clusteredChars: number |
| 186 | cacheHit: boolean |
| 187 | usedPlainAsciiFastPath: boolean |
| 188 | materializeDurationMs: number |
| 189 | writeLineDurationMs: number |
| 190 | writeLoopDurationMs: number |
| 191 | }): void { |
| 192 | outputRenderStats.totalWriteLineCalls += 1 |
| 193 | outputRenderStats.totalWriteLineChars += stats.lineLength |
| 194 | outputRenderStats.totalClusteredChars += stats.clusteredChars |
| 195 | if (stats.cacheHit) { |
| 196 | outputRenderStats.lineCacheHits += 1 |
| 197 | } else { |
| 198 | outputRenderStats.lineCacheMisses += 1 |
| 199 | if (stats.usedPlainAsciiFastPath) { |
| 200 | outputRenderStats.plainAsciiMaterializeCount += 1 |
| 201 | } else { |
| 202 | outputRenderStats.tokenizedMaterializeCount += 1 |
| 203 | } |
| 204 | } |
| 205 | outputRenderStats.totalMaterializeDurationMs += stats.materializeDurationMs |
| 206 | outputRenderStats.maxMaterializeDurationMs = Math.max( |
| 207 | outputRenderStats.maxMaterializeDurationMs, |
| 208 | stats.materializeDurationMs, |
| 209 | ) |
| 210 | outputRenderStats.lastMaterializeDurationMs = stats.materializeDurationMs |
| 211 | outputRenderStats.totalWriteLineDurationMs += stats.writeLineDurationMs |
| 212 | outputRenderStats.maxWriteLineDurationMs = Math.max( |
| 213 | outputRenderStats.maxWriteLineDurationMs, |
| 214 | stats.writeLineDurationMs, |
| 215 | ) |
| 216 | outputRenderStats.lastWriteLineDurationMs = stats.writeLineDurationMs |
| 217 | outputRenderStats.totalWriteLoopDurationMs += stats.writeLoopDurationMs |
| 218 | outputRenderStats.maxWriteLoopDurationMs = Math.max( |
| 219 | outputRenderStats.maxWriteLoopDurationMs, |
| 220 | stats.writeLoopDurationMs, |
| 221 | ) |
| 222 | outputRenderStats.lastWriteLoopDurationMs = stats.writeLoopDurationMs |
| 223 | } |
| 224 | |
| 225 | export function getOutputRenderStatsSnapshot(): OutputRenderStatsSnapshot { |
| 226 | return { ...outputRenderStats } |
no test coverage detected