# Flow Benchmark

URL: https://flow.lanstar.dev/benchmark

> 各機器最新一次 `scripts/bench.sh baseline` 的結果。方法與指標見 https://flow.lanstar.dev/docs/benchmark.md。Δ 為 p50 相對前一次的變化。與 IINA、mpv 的比較見 https://flow.lanstar.dev/docs/compete.md。

## m4-max

- 晶片：Apple M4 Max（Mac16,6）
- macOS 27.2 (26B118)、Xcode 27.0 (27A5228h)、Swift 6.4
- 最新：2026-11-03T08:40:13Z，commit e0ae777c86dcaf8bd94309e45020e6bff851c9bc（dirty）
- 紀錄：6 筆，原始檔 https://github.com/xlanstar/flow/blob/main/Benchmarks/History/m4-max.jsonl

### Micro

| Test                  | Metric            | 方向     |     p50 |         p90 |      Δ |
| --------------------- | ----------------- | -------- | ------: | ----------: | -----: |
| DisplayGraph.compile  | `Instructions`    | 越低越好 |   13.8K |       13.8K |    +2% |
| DisplayGraph.compile  | `Malloc(total)`   | 越低越好 |       9 | 9（門檻 9） |     0% |
| DisplayGraph.compile  | `Time(wallclock)` | 越低越好 | 1.21 μs |     1.42 μs | +15.9% |
| FlowMetrics.increment | `Instructions`    | 越低越好 |       3 |        3.01 |     0% |
| FlowMetrics.increment | `Malloc(total)`   | 越低越好 |       0 | 0（門檻 0） |     0% |
| FlowMetrics.increment | `Time(wallclock)` | 越低越好 |  1.6 ns |     1.77 ns |    +2% |
| FrameSelector.select  | `Instructions`    | 越低越好 |  882.69 |      882.69 |     0% |
| FrameSelector.select  | `Malloc(total)`   | 越低越好 |       0 | 0（門檻 0） |     0% |
| FrameSelector.select  | `Time(wallclock)` | 越低越好 | 39.6 ns |       41 ns |  +1.4% |
| PlaybackClock.read    | `Instructions`    | 越低越好 |  142.08 |      142.21 |     0% |
| PlaybackClock.read    | `Malloc(total)`   | 越低越好 |       0 | 0（門檻 0） |     0% |
| PlaybackClock.read    | `Time(wallclock)` | 越低越好 | 18.4 ns |     18.8 ns |  +9.7% |
| SampleRing.writeRead  | `Instructions`    | 越低越好 |   1.56K |       1.56K |     0% |
| SampleRing.writeRead  | `Malloc(total)`   | 越低越好 |       0 | 0（門檻 0） |     0% |
| SampleRing.writeRead  | `Time(wallclock)` | 越低越好 | 68.4 ns |     71.7 ns |  +0.6% |
| SPSCRing.pushPop      | `Instructions`    | 越低越好 |   56.13 |       56.13 |     0% |
| SPSCRing.pushPop      | `Malloc(total)`   | 越低越好 |       0 | 0（門檻 0） |     0% |
| SPSCRing.pushPop      | `Time(wallclock)` | 越低越好 | 2.09 ns |     2.14 ns |  +1.5% |

### Playback

| Test                 | Metric                                                   | 方向     |       p50 |                    p90 |       Δ |
| -------------------- | -------------------------------------------------------- | -------- | --------: | ---------------------: | ------: |
| eof-idle             | `Contextswitches`                                        | 越低越好 |        21 |                     24 |      0% |
| eof-idle             | `counters.commandBufferSubmit`                           | 越低越好 |         0 |            0（門檻 0） |      0% |
| eof-idle             | `counters.cpuPixelAccess`                                | 越低越好 |         0 |            0（門檻 0） |      0% |
| eof-idle             | `counters.gpuCopy`                                       | 越低越好 |         0 |            0（門檻 0） |      0% |
| eof-idle             | `counters.poolMiss`                                      | 越低越好 |         0 |            0（門檻 0） |      0% |
| eof-idle             | `counters.surfaceAlloc`                                  | 越低越好 |         0 |            0（門檻 0） |      0% |
| eof-idle             | `cpuPercentX100`                                         | 越低越好 |     0.07% |                   0.1% |  -12.5% |
| eof-idle             | `cyclesPerFrame`                                         | 越低越好 |         0 |                      0 |      0% |
| eof-idle             | `decodedSurfaceBytes`                                    | 越低越好 |  23.9 MiB |               23.9 MiB |      0% |
| eof-idle             | `decodedSurfaces`                                        | 越低越好 |         8 |                      8 |      0% |
| eof-idle             | `decodedSurfacesPeak`                                    | 越低越好 |         8 |                      8 |      0% |
| eof-idle             | `engineThreadsCPUMicroseconds`                           | 越低越好 |      0 μs |      0 μs（門檻 0 μs） |      0% |
| eof-idle             | `engineThreadsMallocs`                                   | 越低越好 |         0 |            0（門檻 0） |       — |
| eof-idle             | `engineThreadsMallocsPerFrame`                           | 越低越好 |         0 |                      0 |       — |
| eof-idle             | `environment.displayAsleep`                              | 不分高低 |         0 |                      0 |      0% |
| eof-idle             | `environment.screenLocked`                               | 不分高低 |         0 |                      0 |      0% |
| eof-idle             | `fpsX100`                                                | 越高越好 |     0 fps |                  0 fps |      0% |
| eof-idle             | `frames`                                                 | 不分高低 |         0 |                      0 |      0% |
| eof-idle             | `framesDropped`                                          | 越低越好 |         0 |                      0 |      0% |
| eof-idle             | `framesLate`                                             | 越低越好 |         0 |                      0 |      0% |
| eof-idle             | `framesOverflowed`                                       | 越低越好 |         0 |                      0 |      0% |
| eof-idle             | `gpuTimeNanosecondsP50`                                  | 越低越好 |      0 ns |                   0 ns |      0% |
| eof-idle             | `gpuTimeNanosecondsP95`                                  | 越低越好 |      0 ns |                   0 ns |      0% |
| eof-idle             | `graphicsFootprintBytes`                                 | 越低越好 |  1.94 MiB |               1.94 MiB |      0% |
| eof-idle             | `Instructions`                                           | 越低越好 |     1.01M |                  1.06M |   -0.3% |
| eof-idle             | `instructionsPerFrame`                                   | 越低越好 |         0 |                      0 |      0% |
| eof-idle             | `interruptWakeupsPerSecondX100`                          | 越低越好 |     1.7/s |     1.78/s（門檻 5/s） |  +26.9% |
| eof-idle             | `metalAllocatedBytes`                                    | 越低越好 |  72.2 MiB |               72.2 MiB |      0% |
| eof-idle             | `nonGraphicsFootprintBytes`                              | 越低越好 |  60.1 MiB |               64.3 MiB |   +1.5% |
| eof-idle             | `passCount`                                              | 不分高低 |         1 |                      1 |      0% |
| eof-idle             | `passCountMismatch`                                      | 越低越好 |         0 |                      0 |      0% |
| eof-idle             | `performanceCorePercent`                                 | 不分高低 |       40% |                    72% |  -27.3% |
| eof-idle             | `physFootprintBytes`                                     | 越低越好 |    62 MiB |               66.2 MiB |   +1.5% |
| eof-idle             | `physFootprintPeakBytes`                                 | 越低越好 |   223 MiB |                227 MiB |   +0.4% |
| eof-idle             | `pkgIdleWakeupsPerSecondX100`                            | 越低越好 |       0/s |                 0.19/s |      0% |
| eof-idle             | `powerMilliwatts`                                        | 越低越好 |      0 mW |                   1 mW |      0% |
| eof-idle             | `presentJitterMicrosecondsP95`                           | 越低越好 |      0 μs |                   0 μs |      0% |
| eof-idle             | `processes.VTDecoderXPCService.cpuPercentX100`           | 越低越好 |     0.01% |                  0.01% |       — |
| eof-idle             | `processes.VTDecoderXPCService.instructionsPerFrame`     | 越低越好 |         0 |                      0 |      0% |
| eof-idle             | `processes.VTDecoderXPCService.performanceCorePercent`   | 不分高低 |       14% |                   100% |  -53.3% |
| eof-idle             | `processes.VTDecoderXPCService.physFootprintBytes`       | 越低越好 |  55.2 MiB |               55.3 MiB |   -0.1% |
| eof-idle             | `processes.VTDecoderXPCService.powerMilliwatts`          | 越低越好 |      0 mW |                   0 mW |      0% |
| eof-idle             | `surfaceMismatches`                                      | 越低越好 |         0 |                      0 |      0% |
| eof-idle             | `threads.com.apple.audio.IOThread.client.cpuPercentX100` | 越低越好 |        0% |                     0% |      0% |
| eof-idle             | `threads.com.apple.audio.IOThread.client.mallocs`        | 越低越好 |         0 |                      0 |       — |
| eof-idle             | `threads.Flow.AudioDecode.cpuPercentX100`                | 越低越好 |        0% |                     0% |      0% |
| eof-idle             | `threads.Flow.AudioDecode.mallocs`                       | 越低越好 |         0 |                      0 |       — |
| eof-idle             | `threads.Flow.Demux.cpuPercentX100`                      | 越低越好 |        0% |                     0% |      0% |
| eof-idle             | `threads.Flow.Demux.mallocs`                             | 越低越好 |         0 |                      0 |       — |
| eof-idle             | `threads.Flow.Render.cpuPercentX100`                     | 越低越好 |        0% |                     0% |      0% |
| eof-idle             | `threads.Flow.Render.mallocs`                            | 越低越好 |         0 |                      0 |       — |
| eof-idle             | `threads.Flow.VideoDecode.cpuPercentX100`                | 越低越好 |        0% |                     0% |      0% |
| eof-idle             | `threads.Flow.VideoDecode.mallocs`                       | 越低越好 |         0 |                      0 |       — |
| eof-idle             | `threads.other.cpuPercentX100`                           | 越低越好 |     0.05% |                  0.09% |  -16.7% |
| eof-idle             | `Time(totalCPU)`                                         | 越低越好 |   1.29 ms |                1.93 ms |   -3.9% |
| eof-idle             | `Time(wallclock)`                                        | 越低越好 |    5.14 s |                 5.33 s |   -1.6% |
| eof-idle             | `totalCPUPercentX100`                                    | 越低越好 |     0.07% |     0.11%（門檻 0.1%） |  -12.5% |
| eof-idle             | `totalInstructionsPerFrame`                              | 越低越好 |         0 |                      0 |      0% |
| eof-idle             | `totalPowerMilliwatts`                                   | 越低越好 |      0 mW |                   1 mW |      0% |
| eof-idle             | `vsyncs`                                                 | 不分高低 |         0 |            0（門檻 0） |      0% |
| idle                 | `Contextswitches`                                        | 越低越好 |         8 |                      9 |      0% |
| idle                 | `counters.commandBufferSubmit`                           | 越低越好 |         0 |            0（門檻 0） |      0% |
| idle                 | `counters.cpuPixelAccess`                                | 越低越好 |         0 |            0（門檻 0） |      0% |
| idle                 | `counters.gpuCopy`                                       | 越低越好 |         0 |            0（門檻 0） |      0% |
| idle                 | `counters.poolMiss`                                      | 越低越好 |         0 |            0（門檻 0） |      0% |
| idle                 | `counters.surfaceAlloc`                                  | 越低越好 |         0 |            0（門檻 0） |      0% |
| idle                 | `cpuPercentX100`                                         | 越低越好 |     0.02% |                  0.36% |      0% |
| idle                 | `cyclesPerFrame`                                         | 越低越好 |         0 |                      0 |      0% |
| idle                 | `environment.displayAsleep`                              | 不分高低 |         0 |                      0 |      0% |
| idle                 | `environment.screenLocked`                               | 不分高低 |         0 |                      0 |      0% |
| idle                 | `fpsX100`                                                | 越高越好 |     0 fps |                  0 fps |      0% |
| idle                 | `frames`                                                 | 不分高低 |         0 |                      0 |      0% |
| idle                 | `graphicsFootprintBytes`                                 | 越低越好 |    16 KiB |                 16 KiB |      0% |
| idle                 | `Instructions`                                           | 越低越好 |      222K |                   256K |   -0.3% |
| idle                 | `instructionsPerFrame`                                   | 越低越好 |         0 |                      0 |      0% |
| idle                 | `interruptWakeupsPerSecondX100`                          | 越低越好 |    0.33/s |                 0.63/s |   +3.1% |
| idle                 | `metalAllocatedBytes`                                    | 越低越好 |    80 KiB |                 80 KiB |      0% |
| idle                 | `nonGraphicsFootprintBytes`                              | 越低越好 |  9.79 MiB |               9.83 MiB |   -0.5% |
| idle                 | `performanceCorePercent`                                 | 不分高低 |       66% |                   100% | +144.4% |
| idle                 | `physFootprintBytes`                                     | 越低越好 |   9.8 MiB |               9.84 MiB |   -0.5% |
| idle                 | `physFootprintPeakBytes`                                 | 越低越好 |  9.84 MiB |               9.86 MiB |   -0.4% |
| idle                 | `pkgIdleWakeupsPerSecondX100`                            | 越低越好 |       0/s |                    0/s |      0% |
| idle                 | `powerMilliwatts`                                        | 越低越好 |      0 mW |                   3 mW |      0% |
| idle                 | `threads.other.cpuPercentX100`                           | 越低越好 |     0.01% |                  0.08% |    -50% |
| idle                 | `Time(totalCPU)`                                         | 越低越好 |    308 μs |                 549 μs |  -19.2% |
| idle                 | `Time(wallclock)`                                        | 越低越好 |    3.16 s |                 3.18 s |   -0.4% |
| minimal-1080p-h264   | `Contextswitches`                                        | 越低越好 |     5.35K |                  5.43K |  -10.3% |
| minimal-1080p-h264   | `counters.commandBufferSubmit`                           | 越低越好 |       301 |                    307 |     -1% |
| minimal-1080p-h264   | `counters.cpuPixelAccess`                                | 越低越好 |         0 |            0（門檻 0） |      0% |
| minimal-1080p-h264   | `counters.gpuCopy`                                       | 越低越好 |         0 |            0（門檻 0） |      0% |
| minimal-1080p-h264   | `counters.poolMiss`                                      | 越低越好 |         0 |            0（門檻 0） |      0% |
| minimal-1080p-h264   | `counters.surfaceAlloc`                                  | 越低越好 |         0 |            0（門檻 0） |      0% |
| minimal-1080p-h264   | `cpuPercentX100`                                         | 越低越好 |     2.55% |                  2.68% |  -50.5% |
| minimal-1080p-h264   | `cyclesPerFrame`                                         | 越低越好 |     1.68M |                  1.79M |  -30.2% |
| minimal-1080p-h264   | `decodedSurfaceBytes`                                    | 越低越好 |  23.9 MiB |               23.9 MiB |      0% |
| minimal-1080p-h264   | `decodedSurfaces`                                        | 越低越好 |         8 |                      8 |      0% |
| minimal-1080p-h264   | `decodedSurfacesPeak`                                    | 越低越好 |         8 |                      8 |      0% |
| minimal-1080p-h264   | `engineThreadsCPUMicroseconds`                           | 越低越好 |    153 ms |                 156 ms |  -42.2% |
| minimal-1080p-h264   | `engineThreadsMallocs`                                   | 越低越好 |     8.48K |                  8.54K |       — |
| minimal-1080p-h264   | `engineThreadsMallocsPerFrame`                           | 越低越好 |        89 |                     90 |       — |
| minimal-1080p-h264   | `environment.displayAsleep`                              | 不分高低 |         0 |                      0 |      0% |
| minimal-1080p-h264   | `environment.screenLocked`                               | 不分高低 |         0 |                      0 |      0% |
| minimal-1080p-h264   | `fpsX100`                                                | 越高越好 | 30.01 fps |              29.97 fps |   +0.1% |
| minimal-1080p-h264   | `frames`                                                 | 不分高低 |       301 |                    301 |     -1% |
| minimal-1080p-h264   | `framesDropped`                                          | 越低越好 |         0 |            0（門檻 0） |      0% |
| minimal-1080p-h264   | `framesLate`                                             | 越低越好 |         0 |            0（門檻 0） |      0% |
| minimal-1080p-h264   | `framesOverflowed`                                       | 越低越好 |         0 |            0（門檻 0） |      0% |
| minimal-1080p-h264   | `gpuTimeNanosecondsP50`                                  | 越低越好 |   68.8 μs |                69.2 μs |     -8% |
| minimal-1080p-h264   | `gpuTimeNanosecondsP95`                                  | 越低越好 |   97.8 μs |                 145 μs |     +5% |
| minimal-1080p-h264   | `graphicsFootprintBytes`                                 | 越低越好 |   162 MiB |                162 MiB |      0% |
| minimal-1080p-h264   | `Instructions`                                           | 越低越好 |      300M |                   307M |   -3.8% |
| minimal-1080p-h264   | `instructionsPerFrame`                                   | 越低越好 |     1.02M |                  1.07M |   -4.1% |
| minimal-1080p-h264   | `interruptWakeupsPerSecondX100`                          | 越低越好 |   40.09/s |                40.36/s |   +2.7% |
| minimal-1080p-h264   | `metalAllocatedBytes`                                    | 越低越好 |  72.2 MiB |               72.2 MiB |      0% |
| minimal-1080p-h264   | `nonGraphicsFootprintBytes`                              | 越低越好 |  61.4 MiB |               64.6 MiB |   +1.7% |
| minimal-1080p-h264   | `passCount`                                              | 不分高低 |         1 |            1（門檻 1） |      0% |
| minimal-1080p-h264   | `passCountMismatch`                                      | 越低越好 |         0 |            0（門檻 0） |      0% |
| minimal-1080p-h264   | `performanceCorePercent`                                 | 不分高低 |       50% |                    51% |       — |
| minimal-1080p-h264   | `physFootprintBytes`                                     | 越低越好 |   223 MiB |                227 MiB |   +0.4% |
| minimal-1080p-h264   | `physFootprintPeakBytes`                                 | 越低越好 |   224 MiB |                227 MiB |   +0.3% |
| minimal-1080p-h264   | `pkgIdleWakeupsPerSecondX100`                            | 越低越好 |    3.06/s |                 3.69/s |   +920% |
| minimal-1080p-h264   | `powerMilliwatts`                                        | 越低越好 |      9 mW |                  10 mW |   +200% |
| minimal-1080p-h264   | `presentJitterMicrosecondsP95`                           | 越低越好 |      0 μs |      0 μs（門檻 1 ms） |      0% |
| minimal-1080p-h264   | `processes.VTDecoderXPCService.cpuPercentX100`           | 越低越好 |      2.1% |                  2.21% |  -57.2% |
| minimal-1080p-h264   | `processes.VTDecoderXPCService.instructionsPerFrame`     | 越低越好 |     1.12M |                  1.12M |   -1.4% |
| minimal-1080p-h264   | `processes.VTDecoderXPCService.performanceCorePercent`   | 不分高低 |       53% |                    54% |       — |
| minimal-1080p-h264   | `processes.VTDecoderXPCService.physFootprintBytes`       | 越低越好 |  49.1 MiB |               49.1 MiB |   +0.1% |
| minimal-1080p-h264   | `processes.VTDecoderXPCService.powerMilliwatts`          | 越低越好 |      9 mW |                  10 mW |   +200% |
| minimal-1080p-h264   | `surfaceMismatches`                                      | 越低越好 |         0 |            0（門檻 0） |      0% |
| minimal-1080p-h264   | `threads.com.apple.audio.IOThread.client.cpuPercentX100` | 越低越好 |     0.23% |                  0.24% |      0% |
| minimal-1080p-h264   | `threads.com.apple.audio.IOThread.client.mallocs`        | 越低越好 |         0 |                      0 |       — |
| minimal-1080p-h264   | `threads.Flow.AudioDecode.cpuPercentX100`                | 越低越好 |     0.33% |                  0.34% |  -41.1% |
| minimal-1080p-h264   | `threads.Flow.AudioDecode.mallocs`                       | 越低越好 |     1.18K |                  1.19K |       — |
| minimal-1080p-h264   | `threads.Flow.Demux.cpuPercentX100`                      | 越低越好 |     0.16% |                  0.17% |  -51.5% |
| minimal-1080p-h264   | `threads.Flow.Demux.mallocs`                             | 越低越好 |     2.23K |                  2.26K |       — |
| minimal-1080p-h264   | `threads.Flow.Render.cpuPercentX100`                     | 越低越好 |     0.38% |                  0.41% |  -47.2% |
| minimal-1080p-h264   | `threads.Flow.Render.mallocs`                            | 越低越好 |     1.52K |                  1.54K |       — |
| minimal-1080p-h264   | `threads.Flow.VideoDecode.cpuPercentX100`                | 越低越好 |     0.39% |                  0.41% |  -49.4% |
| minimal-1080p-h264   | `threads.Flow.VideoDecode.mallocs`                       | 越低越好 |     3.55K |                   3.6K |       — |
| minimal-1080p-h264   | `threads.other.cpuPercentX100`                           | 越低越好 |     0.77% |                  1.05% |  -64.8% |
| minimal-1080p-h264   | `Time(totalCPU)`                                         | 越低越好 |    260 ms |                 268 ms |  -49.8% |
| minimal-1080p-h264   | `Time(wallclock)`                                        | 越低越好 |      10 s |                 10.2 s |   -1.1% |
| minimal-1080p-h264   | `totalCPUPercentX100`                                    | 越低越好 |     4.69% |       4.89%（門檻 5%） |  -53.4% |
| minimal-1080p-h264   | `totalInstructionsPerFrame`                              | 越低越好 |     2.13M |                  2.19M |   -2.7% |
| minimal-1080p-h264   | `totalPowerMilliwatts`                                   | 越低越好 |     19 mW |                  20 mW |   +280% |
| minimal-1080p-h264   | `vsyncs`                                                 | 不分高低 |       301 |                    307 |     -1% |
| pause                | `Contextswitches`                                        | 越低越好 |        26 |                     29 |  -13.3% |
| pause                | `counters.commandBufferSubmit`                           | 越低越好 |         0 |            0（門檻 0） |      0% |
| pause                | `counters.cpuPixelAccess`                                | 越低越好 |         0 |            0（門檻 0） |      0% |
| pause                | `counters.gpuCopy`                                       | 越低越好 |         0 |            0（門檻 0） |      0% |
| pause                | `counters.poolMiss`                                      | 越低越好 |         0 |            0（門檻 0） |      0% |
| pause                | `counters.surfaceAlloc`                                  | 越低越好 |         0 |            0（門檻 0） |      0% |
| pause                | `cpuPercentX100`                                         | 越低越好 |     0.02% |                  0.06% |  -66.7% |
| pause                | `cyclesPerFrame`                                         | 越低越好 |         0 |                      0 |      0% |
| pause                | `decodedSurfaceBytes`                                    | 越低越好 |  23.9 MiB |               23.9 MiB |      0% |
| pause                | `decodedSurfaces`                                        | 越低越好 |         8 |                      8 |      0% |
| pause                | `decodedSurfacesPeak`                                    | 越低越好 |         8 |                      8 |      0% |
| pause                | `engineThreadsCPUMicroseconds`                           | 越低越好 |      0 μs |      0 μs（門檻 0 μs） |      0% |
| pause                | `engineThreadsMallocs`                                   | 越低越好 |         0 |            0（門檻 0） |       — |
| pause                | `engineThreadsMallocsPerFrame`                           | 越低越好 |         0 |                      0 |       — |
| pause                | `environment.displayAsleep`                              | 不分高低 |         0 |                      0 |      0% |
| pause                | `environment.screenLocked`                               | 不分高低 |         0 |                      0 |      0% |
| pause                | `fpsX100`                                                | 越高越好 |     0 fps |                  0 fps |      0% |
| pause                | `frames`                                                 | 不分高低 |         0 |                      0 |      0% |
| pause                | `framesDropped`                                          | 越低越好 |         0 |                      0 |      0% |
| pause                | `framesLate`                                             | 越低越好 |         0 |                      0 |      0% |
| pause                | `framesOverflowed`                                       | 越低越好 |         0 |                      0 |      0% |
| pause                | `gpuTimeNanosecondsP50`                                  | 越低越好 |      0 ns |                   0 ns |      0% |
| pause                | `gpuTimeNanosecondsP95`                                  | 越低越好 |      0 ns |                   0 ns |      0% |
| pause                | `graphicsFootprintBytes`                                 | 越低越好 |  1.94 MiB |               1.94 MiB |      0% |
| pause                | `Instructions`                                           | 越低越好 |     1.09M |                  1.22M |   -6.9% |
| pause                | `instructionsPerFrame`                                   | 越低越好 |         0 |                      0 |      0% |
| pause                | `interruptWakeupsPerSecondX100`                          | 越低越好 |    0.85/s |     0.99/s（門檻 5/s） |  -12.4% |
| pause                | `metalAllocatedBytes`                                    | 越低越好 |  72.2 MiB |               72.2 MiB |      0% |
| pause                | `nonGraphicsFootprintBytes`                              | 越低越好 |  61.1 MiB |               63.8 MiB |   +4.2% |
| pause                | `passCount`                                              | 不分高低 |         1 |                      1 |      0% |
| pause                | `passCountMismatch`                                      | 越低越好 |         0 |                      0 |      0% |
| pause                | `performanceCorePercent`                                 | 不分高低 |       75% |                   100% |       — |
| pause                | `physFootprintBytes`                                     | 越低越好 |    63 MiB |               65.8 MiB |     +4% |
| pause                | `physFootprintPeakBytes`                                 | 越低越好 |   223 MiB |                226 MiB |   +0.8% |
| pause                | `pkgIdleWakeupsPerSecondX100`                            | 越低越好 |     0.1/s |                  0.2/s |       — |
| pause                | `powerMilliwatts`                                        | 越低越好 |      0 mW |                   0 mW |      0% |
| pause                | `presentJitterMicrosecondsP95`                           | 越低越好 |      0 μs |                   0 μs |      0% |
| pause                | `processes.VTDecoderXPCService.cpuPercentX100`           | 越低越好 |        0% |                     0% |      0% |
| pause                | `processes.VTDecoderXPCService.instructionsPerFrame`     | 越低越好 |         0 |                      0 |      0% |
| pause                | `processes.VTDecoderXPCService.performanceCorePercent`   | 不分高低 |      100% |                   100% |       — |
| pause                | `processes.VTDecoderXPCService.physFootprintBytes`       | 越低越好 |  48.7 MiB |               48.7 MiB |   +0.1% |
| pause                | `processes.VTDecoderXPCService.powerMilliwatts`          | 越低越好 |      0 mW |                   0 mW |      0% |
| pause                | `surfaceMismatches`                                      | 越低越好 |         0 |                      0 |      0% |
| pause                | `threads.com.apple.audio.IOThread.client.cpuPercentX100` | 越低越好 |        0% |                     0% |      0% |
| pause                | `threads.com.apple.audio.IOThread.client.mallocs`        | 越低越好 |         0 |                      0 |       — |
| pause                | `threads.Flow.AudioDecode.cpuPercentX100`                | 越低越好 |        0% |                     0% |      0% |
| pause                | `threads.Flow.AudioDecode.mallocs`                       | 越低越好 |         0 |                      0 |       — |
| pause                | `threads.Flow.Demux.cpuPercentX100`                      | 越低越好 |        0% |                     0% |      0% |
| pause                | `threads.Flow.Demux.mallocs`                             | 越低越好 |         0 |                      0 |       — |
| pause                | `threads.Flow.Render.cpuPercentX100`                     | 越低越好 |        0% |                     0% |      0% |
| pause                | `threads.Flow.Render.mallocs`                            | 越低越好 |         0 |                      0 |       — |
| pause                | `threads.Flow.VideoDecode.cpuPercentX100`                | 越低越好 |        0% |                     0% |      0% |
| pause                | `threads.Flow.VideoDecode.mallocs`                       | 越低越好 |         0 |                      0 |       — |
| pause                | `threads.other.cpuPercentX100`                           | 越低越好 |     0.02% |                  0.06% |  -66.7% |
| pause                | `Time(totalCPU)`                                         | 越低越好 |   1.02 ms |                1.54 ms |    -51% |
| pause                | `Time(wallclock)`                                        | 越低越好 |    10.2 s |                 10.5 s |   -2.4% |
| pause                | `totalCPUPercentX100`                                    | 越低越好 |     0.02% |     0.06%（門檻 0.1%） |  -71.4% |
| pause                | `totalInstructionsPerFrame`                              | 越低越好 |         0 |                      0 |      0% |
| pause                | `totalPowerMilliwatts`                                   | 越低越好 |      0 mW |                   0 mW |      0% |
| pause                | `vsyncs`                                                 | 不分高低 |         0 |            0（門檻 0） |      0% |
| perf01-4k-hevc10-60p | `Contextswitches`                                        | 越低越好 |     9.45K |                  9.61K |   -1.3% |
| perf01-4k-hevc10-60p | `counters.commandBufferSubmit`                           | 越低越好 |       602 |                    607 |      0% |
| perf01-4k-hevc10-60p | `counters.cpuPixelAccess`                                | 越低越好 |         0 |            0（門檻 0） |      0% |
| perf01-4k-hevc10-60p | `counters.gpuCopy`                                       | 越低越好 |         0 |            0（門檻 0） |      0% |
| perf01-4k-hevc10-60p | `counters.poolMiss`                                      | 越低越好 |         0 |            1（門檻 0） |      0% |
| perf01-4k-hevc10-60p | `counters.surfaceAlloc`                                  | 越低越好 |         0 |            2（門檻 0） |      0% |
| perf01-4k-hevc10-60p | `cpuPercentX100`                                         | 越低越好 |     4.09% |                  4.59% |  -47.3% |
| perf01-4k-hevc10-60p | `cyclesPerFrame`                                         | 越低越好 |     1.47M |                  1.53M |   -5.7% |
| perf01-4k-hevc10-60p | `decodedSurfaceBytes`                                    | 越低越好 |   190 MiB |                190 MiB |      0% |
| perf01-4k-hevc10-60p | `decodedSurfaces`                                        | 越低越好 |         8 |                      8 |      0% |
| perf01-4k-hevc10-60p | `decodedSurfacesPeak`                                    | 越低越好 |         8 |                      9 |      0% |
| perf01-4k-hevc10-60p | `engineThreadsCPUMicroseconds`                           | 越低越好 |    226 ms |                 259 ms |  -41.7% |
| perf01-4k-hevc10-60p | `engineThreadsMallocs`                                   | 越低越好 |     13.7K |                  13.9K |       — |
| perf01-4k-hevc10-60p | `engineThreadsMallocsPerFrame`                           | 越低越好 |        73 |                     74 |       — |
| perf01-4k-hevc10-60p | `environment.displayAsleep`                              | 不分高低 |         0 |                      0 |      0% |
| perf01-4k-hevc10-60p | `environment.screenLocked`                               | 不分高低 |         0 |                      0 |      0% |
| perf01-4k-hevc10-60p | `fpsX100`                                                | 越高越好 | 60.03 fps |              59.99 fps |   +0.1% |
| perf01-4k-hevc10-60p | `frames`                                                 | 不分高低 |       603 |                    601 |   +0.2% |
| perf01-4k-hevc10-60p | `framesDropped`                                          | 越低越好 |         0 |            0（門檻 0） |      0% |
| perf01-4k-hevc10-60p | `framesLate`                                             | 越低越好 |         0 |            0（門檻 0） |      0% |
| perf01-4k-hevc10-60p | `framesOverflowed`                                       | 越低越好 |         0 |            0（門檻 0） |      0% |
| perf01-4k-hevc10-60p | `gpuTimeNanosecondsP50`                                  | 越低越好 |    203 μs |                 267 μs |  -35.2% |
| perf01-4k-hevc10-60p | `gpuTimeNanosecondsP95`                                  | 越低越好 |    379 μs |                 384 μs |   +0.5% |
| perf01-4k-hevc10-60p | `graphicsFootprintBytes`                                 | 越低越好 |   162 MiB |                162 MiB |      0% |
| perf01-4k-hevc10-60p | `Instructions`                                           | 越低越好 |      507M |                   511M |   -1.1% |
| perf01-4k-hevc10-60p | `instructionsPerFrame`                                   | 越低越好 |      855K |                   879K |   -1.2% |
| perf01-4k-hevc10-60p | `interruptWakeupsPerSecondX100`                          | 越低越好 |   75.39/s |                77.51/s |     +8% |
| perf01-4k-hevc10-60p | `metalAllocatedBytes`                                    | 越低越好 |   404 MiB |                404 MiB |      0% |
| perf01-4k-hevc10-60p | `nonGraphicsFootprintBytes`                              | 越低越好 |  72.9 MiB |               75.9 MiB |   +1.3% |
| perf01-4k-hevc10-60p | `passCount`                                              | 不分高低 |         1 |            1（門檻 1） |      0% |
| perf01-4k-hevc10-60p | `passCountMismatch`                                      | 越低越好 |         0 |            0（門檻 0） |      0% |
| perf01-4k-hevc10-60p | `performanceCorePercent`                                 | 不分高低 |       38% |                    45% |       — |
| perf01-4k-hevc10-60p | `physFootprintBytes`                                     | 越低越好 |   235 MiB |                238 MiB |   +0.4% |
| perf01-4k-hevc10-60p | `physFootprintPeakBytes`                                 | 越低越好 |   235 MiB |                238 MiB |   +0.4% |
| perf01-4k-hevc10-60p | `pkgIdleWakeupsPerSecondX100`                            | 越低越好 |    5.43/s |                 5.57/s | +448.5% |
| perf01-4k-hevc10-60p | `powerMilliwatts`                                        | 越低越好 |     16 mW |                  17 mW |   +300% |
| perf01-4k-hevc10-60p | `presentJitterMicrosecondsP95`                           | 越低越好 |      0 μs |      0 μs（門檻 1 ms） |      0% |
| perf01-4k-hevc10-60p | `processes.VTDecoderXPCService.cpuPercentX100`           | 越低越好 |     5.57% |                  6.33% |  -54.8% |
| perf01-4k-hevc10-60p | `processes.VTDecoderXPCService.instructionsPerFrame`     | 越低越好 |     1.63M |                  1.64M |   -1.3% |
| perf01-4k-hevc10-60p | `processes.VTDecoderXPCService.performanceCorePercent`   | 不分高低 |       39% |                    45% |       — |
| perf01-4k-hevc10-60p | `processes.VTDecoderXPCService.physFootprintBytes`       | 越低越好 |   291 MiB |                314 MiB |   +0.1% |
| perf01-4k-hevc10-60p | `processes.VTDecoderXPCService.powerMilliwatts`          | 越低越好 |     23 mW |                  26 mW |   +360% |
| perf01-4k-hevc10-60p | `surfaceMismatches`                                      | 越低越好 |         0 |            0（門檻 0） |      0% |
| perf01-4k-hevc10-60p | `threads.com.apple.audio.IOThread.client.cpuPercentX100` | 越低越好 |     0.27% |                  0.29% |   +3.8% |
| perf01-4k-hevc10-60p | `threads.com.apple.audio.IOThread.client.mallocs`        | 越低越好 |         0 |                      0 |       — |
| perf01-4k-hevc10-60p | `threads.Flow.AudioDecode.cpuPercentX100`                | 越低越好 |     0.35% |                  0.39% |  -41.7% |
| perf01-4k-hevc10-60p | `threads.Flow.AudioDecode.mallocs`                       | 越低越好 |     1.16K |                  1.18K |       — |
| perf01-4k-hevc10-60p | `threads.Flow.Demux.cpuPercentX100`                      | 越低越好 |     0.26% |                  0.29% |  -46.9% |
| perf01-4k-hevc10-60p | `threads.Flow.Demux.mallocs`                             | 越低越好 |     2.65K |                   2.7K |       — |
| perf01-4k-hevc10-60p | `threads.Flow.Render.cpuPercentX100`                     | 越低越好 |     0.75% |                  0.82% |  -37.5% |
| perf01-4k-hevc10-60p | `threads.Flow.Render.mallocs`                            | 越低越好 |     2.98K |                  3.01K |       — |
| perf01-4k-hevc10-60p | `threads.Flow.VideoDecode.cpuPercentX100`                | 越低越好 |     0.72% |                  0.79% |    -45% |
| perf01-4k-hevc10-60p | `threads.Flow.VideoDecode.mallocs`                       | 越低越好 |      6.9K |                  7.09K |       — |
| perf01-4k-hevc10-60p | `threads.other.cpuPercentX100`                           | 越低越好 |     1.61% |                   1.7% |  -55.5% |
| perf01-4k-hevc10-60p | `Time(totalCPU)`                                         | 越低越好 |    408 ms |                 464 ms |  -47.6% |
| perf01-4k-hevc10-60p | `Time(wallclock)`                                        | 越低越好 |      10 s |                 10.1 s |      0% |
| perf01-4k-hevc10-60p | `totalCPUPercentX100`                                    | 越低越好 |      9.6% |      10.92%（門檻 5%） |    -52% |
| perf01-4k-hevc10-60p | `totalInstructionsPerFrame`                              | 越低越好 |     2.49M |                   2.5M |   -1.1% |
| perf01-4k-hevc10-60p | `totalPowerMilliwatts`                                   | 越低越好 |     39 mW |                  43 mW | +333.3% |
| perf01-4k-hevc10-60p | `vsyncs`                                                 | 不分高低 |       603 |                    607 |   +0.2% |
| startup              | `Contextswitches`                                        | 越低越好 |       600 |                    648 |   -6.7% |
| startup              | `environment.displayAsleep`                              | 不分高低 |         0 |                      0 |      0% |
| startup              | `environment.screenLocked`                               | 不分高低 |         0 |                      0 |      0% |
| startup              | `graphicsFootprintBytes`                                 | 越低越好 |   161 MiB |                161 MiB |      0% |
| startup              | `Instructions`                                           | 越低越好 |     96.9M |                   101M |   -2.3% |
| startup              | `metalAllocatedBytes`                                    | 越低越好 |  30.2 MiB |               30.2 MiB |      0% |
| startup              | `nonGraphicsFootprintBytes`                              | 越低越好 |    53 MiB |                 59 MiB |   +3.3% |
| startup              | `physFootprintBytes`                                     | 越低越好 |   214 MiB |                220 MiB |   +0.8% |
| startup              | `physFootprintPeakBytes`                                 | 越低越好 |   214 MiB |                220 MiB |   +0.8% |
| startup              | `startup.activateMicroseconds`                           | 越低越好 |    376 μs |                4.24 ms |   +4.7% |
| startup              | `startup.attachMicroseconds`                             | 越低越好 |    303 μs |                 322 μs |   +7.4% |
| startup              | `startup.firstFrameMicroseconds`                         | 越低越好 |   49.5 ms | 51.9 ms（門檻 300 ms） |   -6.6% |
| startup              | `startup.loadToFirstFrameMicroseconds`                   | 越低越好 |   48.3 ms |                51.2 ms |   -7.7% |
| startup              | `startup.loadToRestartMicroseconds`                      | 越低越好 |   65.7 ms |                85.6 ms |  +34.1% |
| startup              | `startup.openMicroseconds`                               | 越低越好 |   5.73 ms |                6.33 ms |  -23.1% |
| startup              | `Time(totalCPU)`                                         | 越低越好 |   17.6 ms |                19.2 ms |   -2.9% |
| startup              | `Time(wallclock)`                                        | 越低越好 |   66.4 ms |                91.5 ms |  +22.6% |
| synthetic            | `Contextswitches`                                        | 越低越好 |       268 |                    358 |    +17% |
| synthetic            | `counters.commandBufferSubmit`                           | 越低越好 |         0 |            0（門檻 0） |      0% |
| synthetic            | `counters.cpuPixelAccess`                                | 越低越好 |         0 |            0（門檻 0） |      0% |
| synthetic            | `counters.gpuCopy`                                       | 越低越好 |         0 |            0（門檻 0） |      0% |
| synthetic            | `counters.poolMiss`                                      | 越低越好 |         0 |            0（門檻 0） |      0% |
| synthetic            | `counters.surfaceAlloc`                                  | 越低越好 |         0 |            0（門檻 0） |      0% |
| synthetic            | `cpuPercentX100`                                         | 越低越好 |     2.06% |                  2.75% |  -40.5% |
| synthetic            | `cyclesPerFrame`                                         | 越低越好 |      721K |                   871K |   +7.5% |
| synthetic            | `environment.displayAsleep`                              | 不分高低 |         0 |                      0 |      0% |
| synthetic            | `environment.screenLocked`                               | 不分高低 |         0 |                      0 |      0% |
| synthetic            | `fpsX100`                                                | 越高越好 | 59.95 fps |              59.63 fps |      0% |
| synthetic            | `frames`                                                 | 不分高低 |       180 |                    180 |      0% |
| synthetic            | `graphicsFootprintBytes`                                 | 越低越好 |    16 KiB |                 16 KiB |      0% |
| synthetic            | `Instructions`                                           | 越低越好 |      257M |                   258M |   +0.4% |
| synthetic            | `instructionsPerFrame`                                   | 越低越好 |     1.43M |                  1.65M |   +0.4% |
| synthetic            | `interruptWakeupsPerSecondX100`                          | 越低越好 |   59.95/s |                59.98/s |      0% |
| synthetic            | `metalAllocatedBytes`                                    | 越低越好 |    80 KiB |                 80 KiB |      0% |
| synthetic            | `nonGraphicsFootprintBytes`                              | 越低越好 |  10.1 MiB |               10.2 MiB |   +0.5% |
| synthetic            | `performanceCorePercent`                                 | 不分高低 |       29% |                    72% |   +625% |
| synthetic            | `physFootprintBytes`                                     | 越低越好 |  10.1 MiB |               10.2 MiB |   +0.5% |
| synthetic            | `physFootprintPeakBytes`                                 | 越低越好 |  10.2 MiB |               10.2 MiB |   +0.5% |
| synthetic            | `pkgIdleWakeupsPerSecondX100`                            | 越低越好 |    0.67/s |                 1.67/s |    -33% |
| synthetic            | `powerMilliwatts`                                        | 越低越好 |     10 mW |                  12 mW | +233.3% |
| synthetic            | `threads.other.cpuPercentX100`                           | 越低越好 |     0.01% |                  0.03% |    -50% |
| synthetic            | `threads.Playback.Synthetic.cpuPercentX100`              | 越低越好 |     2.06% |                  2.35% |  -37.6% |
| synthetic            | `threads.Playback.Synthetic.mallocs`                     | 越低越好 |         0 |                      0 |       — |
| synthetic            | `Time(totalCPU)`                                         | 越低越好 |   61.9 ms |                71.1 ms |  -37.8% |
| synthetic            | `Time(wallclock)`                                        | 越低越好 |       3 s |                    3 s |   -0.1% |

### Size

| Test          | Metric                                                                                               | 方向     |      p50 |      p90 |   Δ |
| ------------- | ---------------------------------------------------------------------------------------------------- | -------- | -------: | -------: | --: |
| Flow          | `executable.__DATA_CONST.bytes`                                                                      | 越低越好 |   64 KiB |   64 KiB |  0% |
| Flow          | `executable.__DATA.bytes`                                                                            | 越低越好 |   64 KiB |   64 KiB |  0% |
| Flow          | `executable.__LINKEDIT.bytes`                                                                        | 越低越好 |  205 KiB |  205 KiB |  0% |
| Flow          | `executable.__PAGEZERO.bytes`                                                                        | 不分高低 |      0 B |      0 B |  0% |
| Flow          | `executable.__TEXT.bytes`                                                                            | 越低越好 |  864 KiB |  864 KiB |  0% |
| Flow          | `executable.dylibCount`                                                                              | 越低越好 |       47 |       47 |  0% |
| Flow          | `executable.sliceBytes`                                                                              | 越低越好 | 1.17 MiB | 1.17 MiB |  0% |
| Flow          | `frameworks.libavcodec.framework.bytes`                                                              | 越低越好 | 1.04 MiB | 1.04 MiB |  0% |
| Flow          | `frameworks.libavformat.framework.bytes`                                                             | 越低越好 |  457 KiB |  457 KiB |  0% |
| Flow          | `frameworks.libavutil.framework.bytes`                                                               | 越低越好 |  718 KiB |  718 KiB |  0% |
| Flow          | `frameworks.libswresample.framework.bytes`                                                           | 越低越好 |  120 KiB |  120 KiB |  0% |
| Flow          | `linkMap.symbolBytes`                                                                                | 越低越好 |    1 MiB |    1 MiB |  0% |
| Flow          | `metallibs.Contents/Resources/Metal4_FlowMetal4.bundle/Contents/Resources/FlowMetal4.metallib.bytes` | 越低越好 | 8.31 KiB | 8.31 KiB |  0% |
| Flow          | `modules.<linker>.symbolBytes`                                                                       | 越低越好 |   30 KiB |   30 KiB |  0% |
| Flow          | `modules.AppKit.symbolBytes`                                                                         | 越低越好 |     64 B |     64 B |  0% |
| Flow          | `modules.AudioToolboxCore.symbolBytes`                                                               | 越低越好 |     40 B |     40 B |  0% |
| Flow          | `modules.AVFAudio.symbolBytes`                                                                       | 越低越好 |     40 B |     40 B |  0% |
| Flow          | `modules.clang_rt.osx.symbolBytes`                                                                   | 越低越好 |  1.5 KiB |  1.5 KiB |  0% |
| Flow          | `modules.CoreAudio.symbolBytes`                                                                      | 越低越好 |     20 B |     20 B |  0% |
| Flow          | `modules.CoreFoundation.symbolBytes`                                                                 | 越低越好 |    308 B |    308 B |  0% |
| Flow          | `modules.CoreGraphics.symbolBytes`                                                                   | 越低越好 |    232 B |    232 B |  0% |
| Flow          | `modules.CoreMedia.symbolBytes`                                                                      | 越低越好 |    240 B |    240 B |  0% |
| Flow          | `modules.CoreTransferable.symbolBytes`                                                               | 越低越好 |      8 B |      8 B |  0% |
| Flow          | `modules.CoreVideo.symbolBytes`                                                                      | 越低越好 |    324 B |    324 B |  0% |
| Flow          | `modules.FlowAVAudio.symbolBytes`                                                                    | 越低越好 | 20.1 KiB | 20.1 KiB |  0% |
| Flow          | `modules.FlowBase.symbolBytes`                                                                       | 越低越好 |  109 KiB |  109 KiB |  0% |
| Flow          | `modules.FlowCommand.symbolBytes`                                                                    | 越低越好 | 26.4 KiB | 26.4 KiB |  0% |
| Flow          | `modules.FlowComposition.symbolBytes`                                                                | 越低越好 | 3.67 KiB | 3.67 KiB |  0% |
| Flow          | `modules.FlowEngine.symbolBytes`                                                                     | 越低越好 |  201 KiB |  201 KiB |  0% |
| Flow          | `modules.FlowFFmpeg.symbolBytes`                                                                     | 越低越好 | 70.2 KiB | 70.2 KiB |  0% |
| Flow          | `modules.FlowFile.symbolBytes`                                                                       | 越低越好 | 8.12 KiB | 8.12 KiB |  0% |
| Flow          | `modules.FlowGraph.symbolBytes`                                                                      | 越低越好 | 11.9 KiB | 11.9 KiB |  0% |
| Flow          | `modules.FlowInterfaces.symbolBytes`                                                                 | 越低越好 |  140 KiB |  140 KiB |  0% |
| Flow          | `modules.FlowMac.symbolBytes`                                                                        | 越低越好 | 60.9 KiB | 60.9 KiB |  0% |
| Flow          | `modules.FlowMetal4.symbolBytes`                                                                     | 越低越好 |  118 KiB |  118 KiB |  0% |
| Flow          | `modules.FlowModuleHost.symbolBytes`                                                                 | 越低越好 | 17.7 KiB | 17.7 KiB |  0% |
| Flow          | `modules.FlowPlayerAPI.symbolBytes`                                                                  | 越低越好 | 17.2 KiB | 17.2 KiB |  0% |
| Flow          | `modules.FlowUI.symbolBytes`                                                                         | 越低越好 |  143 KiB |  143 KiB |  0% |
| Flow          | `modules.FlowVideoToolbox.symbolBytes`                                                               | 越低越好 | 29.2 KiB | 29.2 KiB |  0% |
| Flow          | `modules.Foundation.symbolBytes`                                                                     | 越低越好 | 1.19 KiB | 1.19 KiB |  0% |
| Flow          | `modules.IOSurface.symbolBytes`                                                                      | 越低越好 |     80 B |     80 B |  0% |
| Flow          | `modules.libavcodec.symbolBytes`                                                                     | 越低越好 |    120 B |    120 B |  0% |
| Flow          | `modules.libavformat.symbolBytes`                                                                    | 越低越好 |    680 B |    680 B |  0% |
| Flow          | `modules.libavutil.symbolBytes`                                                                      | 越低越好 |     60 B |     60 B |  0% |
| Flow          | `modules.libcompiler_rt.symbolBytes`                                                                 | 越低越好 |     48 B |     48 B |  0% |
| Flow          | `modules.libdispatch.symbolBytes`                                                                    | 越低越好 |     28 B |     28 B |  0% |
| Flow          | `modules.libdyld.symbolBytes`                                                                        | 越低越好 |     20 B |     20 B |  0% |
| Flow          | `modules.libobjc.symbolBytes`                                                                        | 越低越好 |    168 B |    168 B |  0% |
| Flow          | `modules.libswift_Concurrency.symbolBytes`                                                           | 越低越好 |    764 B |    764 B |  0% |
| Flow          | `modules.libswift_DarwinFoundation1.symbolBytes`                                                     | 越低越好 |     20 B |     20 B |  0% |
| Flow          | `modules.libswiftCore.symbolBytes`                                                                   | 越低越好 | 4.65 KiB | 4.65 KiB |  0% |
| Flow          | `modules.libswiftCoreFoundation.symbolBytes`                                                         | 越低越好 |     68 B |     68 B |  0% |
| Flow          | `modules.libswiftDarwin.symbolBytes`                                                                 | 越低越好 |     80 B |     80 B |  0% |
| Flow          | `modules.libswiftDispatch.symbolBytes`                                                               | 越低越好 |    116 B |    116 B |  0% |
| Flow          | `modules.libswiftMetal.symbolBytes`                                                                  | 越低越好 |     40 B |     40 B |  0% |
| Flow          | `modules.libswiftObservation.symbolBytes`                                                            | 越低越好 |    128 B |    128 B |  0% |
| Flow          | `modules.libswiftos.symbolBytes`                                                                     | 越低越好 |    584 B |    584 B |  0% |
| Flow          | `modules.libswiftQuartzCore.symbolBytes`                                                             | 越低越好 |     40 B |     40 B |  0% |
| Flow          | `modules.libswiftSynchronization.symbolBytes`                                                        | 越低越好 |     44 B |     44 B |  0% |
| Flow          | `modules.libswiftUniformTypeIdentifiers.symbolBytes`                                                 | 越低越好 |     48 B |     48 B |  0% |
| Flow          | `modules.libswresample.symbolBytes`                                                                  | 越低越好 |    160 B |    160 B |  0% |
| Flow          | `modules.libsystem_blocks.symbolBytes`                                                               | 越低越好 |     48 B |     48 B |  0% |
| Flow          | `modules.libsystem_c.symbolBytes`                                                                    | 越低越好 |    288 B |    288 B |  0% |
| Flow          | `modules.libsystem_kernel.symbolBytes`                                                               | 越低越好 |    188 B |    188 B |  0% |
| Flow          | `modules.libsystem_m.symbolBytes`                                                                    | 越低越好 |     20 B |     20 B |  0% |
| Flow          | `modules.libsystem_malloc.symbolBytes`                                                               | 越低越好 |     60 B |     60 B |  0% |
| Flow          | `modules.libsystem_platform.symbolBytes`                                                             | 越低越好 |     40 B |     40 B |  0% |
| Flow          | `modules.libsystem_pthread.symbolBytes`                                                              | 越低越好 |     40 B |     40 B |  0% |
| Flow          | `modules.libsystem_trace.symbolBytes`                                                                | 越低越好 |     60 B |     60 B |  0% |
| Flow          | `modules.libvDSP.symbolBytes`                                                                        | 越低越好 |     60 B |     60 B |  0% |
| Flow          | `modules.libxpc.symbolBytes`                                                                         | 越低越好 |     20 B |     20 B |  0% |
| Flow          | `modules.Metal.symbolBytes`                                                                          | 越低越好 |    100 B |    100 B |  0% |
| Flow          | `modules.QuartzCore.symbolBytes`                                                                     | 越低越好 |     40 B |     40 B |  0% |
| Flow          | `modules.SwiftUI.symbolBytes`                                                                        | 越低越好 | 2.65 KiB | 2.65 KiB |  0% |
| Flow          | `modules.SwiftUICore.symbolBytes`                                                                    | 越低越好 | 2.84 KiB | 2.84 KiB |  0% |
| Flow          | `modules.Symbols.symbolBytes`                                                                        | 越低越好 |     88 B |     88 B |  0% |
| Flow          | `modules.VideoToolbox.symbolBytes`                                                                   | 越低越好 |    156 B |    156 B |  0% |
| Flow          | `totalBytes`                                                                                         | 越低越好 | 5.23 MiB | 5.23 MiB |  0% |
| FlowSizeProbe | `executable.__DATA_CONST.bytes`                                                                      | 越低越好 |   32 KiB |   32 KiB |   — |
| FlowSizeProbe | `executable.__DATA.bytes`                                                                            | 越低越好 |   32 KiB |   32 KiB |   — |
| FlowSizeProbe | `executable.__LINKEDIT.bytes`                                                                        | 越低越好 |  257 KiB |  257 KiB |   — |
| FlowSizeProbe | `executable.__PAGEZERO.bytes`                                                                        | 不分高低 |      0 B |      0 B |   — |
| FlowSizeProbe | `executable.__TEXT.bytes`                                                                            | 越低越好 |  496 KiB |  496 KiB |   — |
| FlowSizeProbe | `executable.dylibCount`                                                                              | 越低越好 |       17 |       17 |   — |
| FlowSizeProbe | `executable.sliceBytes`                                                                              | 越低越好 |  817 KiB |  817 KiB |   — |
| FlowSizeProbe | `linkMap.symbolBytes`                                                                                | 越低越好 |  586 KiB |  586 KiB |   — |
| FlowSizeProbe | `modules.<linker>.symbolBytes`                                                                       | 越低越好 | 9.54 KiB | 9.54 KiB |   — |
| FlowSizeProbe | `modules.CoreFoundation.symbolBytes`                                                                 | 越低越好 |    268 B |    268 B |   — |
| FlowSizeProbe | `modules.FlowBase.symbolBytes`                                                                       | 越低越好 |  143 KiB |  143 KiB |   — |
| FlowSizeProbe | `modules.FlowCommand.symbolBytes`                                                                    | 越低越好 | 26.9 KiB | 26.9 KiB |   — |
| FlowSizeProbe | `modules.FlowEngine.symbolBytes`                                                                     | 越低越好 |  199 KiB |  199 KiB |   — |
| FlowSizeProbe | `modules.FlowGraph.symbolBytes`                                                                      | 越低越好 | 12.9 KiB | 12.9 KiB |   — |
| FlowSizeProbe | `modules.FlowInterfaces.symbolBytes`                                                                 | 越低越好 |  169 KiB |  169 KiB |   — |
| FlowSizeProbe | `modules.FlowModuleHost.symbolBytes`                                                                 | 越低越好 | 18.6 KiB | 18.6 KiB |   — |
| FlowSizeProbe | `modules.FlowSizeProbe.symbolBytes`                                                                  | 越低越好 | 1.39 KiB | 1.39 KiB |   — |
| FlowSizeProbe | `modules.Foundation.symbolBytes`                                                                     | 越低越好 |    104 B |    104 B |   — |
| FlowSizeProbe | `modules.libcompiler_rt.symbolBytes`                                                                 | 越低越好 |     48 B |     48 B |   — |
| FlowSizeProbe | `modules.libobjc.symbolBytes`                                                                        | 越低越好 |    108 B |    108 B |   — |
| FlowSizeProbe | `modules.libswift_Concurrency.symbolBytes`                                                           | 越低越好 |    620 B |    620 B |   — |
| FlowSizeProbe | `modules.libswift_DarwinFoundation1.symbolBytes`                                                     | 越低越好 |     20 B |     20 B |   — |
| FlowSizeProbe | `modules.libswiftCore.symbolBytes`                                                                   | 越低越好 | 3.74 KiB | 3.74 KiB |   — |
| FlowSizeProbe | `modules.libswiftObservation.symbolBytes`                                                            | 越低越好 |     88 B |     88 B |   — |
| FlowSizeProbe | `modules.libswiftos.symbolBytes`                                                                     | 越低越好 |    536 B |    536 B |   — |
| FlowSizeProbe | `modules.libswiftSynchronization.symbolBytes`                                                        | 越低越好 |     44 B |     44 B |   — |
| FlowSizeProbe | `modules.libsystem_blocks.symbolBytes`                                                               | 越低越好 |     48 B |     48 B |   — |
| FlowSizeProbe | `modules.libsystem_c.symbolBytes`                                                                    | 越低越好 |    148 B |    148 B |   — |
| FlowSizeProbe | `modules.libsystem_kernel.symbolBytes`                                                               | 越低越好 |    288 B |    288 B |   — |
| FlowSizeProbe | `modules.libsystem_malloc.symbolBytes`                                                               | 越低越好 |     20 B |     20 B |   — |
| FlowSizeProbe | `modules.libsystem_platform.symbolBytes`                                                             | 越低越好 |     40 B |     40 B |   — |
| FlowSizeProbe | `modules.libsystem_pthread.symbolBytes`                                                              | 越低越好 |     20 B |     20 B |   — |
| FlowSizeProbe | `modules.libsystem_trace.symbolBytes`                                                                | 越低越好 |     60 B |     60 B |   — |
| FlowSizeProbe | `totalBytes`                                                                                         | 越低越好 |  817 KiB |  817 KiB |   — |
