效能與資源管理
約 450 字大約 2 分鐘
2025-10-03
⚙️ 好聽也要跑得動:聲音是會吃 CPU / IO / 記憶體的
忽視資源管理 = 高階段爆炸回收。提早規劃 Voice 上限、Streaming 策略與格式選擇,讓專案穩定擴張。
🎯 本節你會收穫
- 🧮 了解成本來源:解碼 / IO / 混音 / 效果
- 🧵 建立 Voice 上限 + 優先級 + 虛擬化策略
- 🚚 分辨 Streaming / Memory / Prefetch 適用條件
- 🗜️ 媒體壓縮格式取捨(Vorbis / ADPCM / PCM / Opus)
- 🔍 使用 Profiler 建立迭代分析流程
一、成本來源
| 類型 | 負擔 |
|---|---|
| 解碼 | CPU(Vorbis/Opus) |
| IO 流讀 | 磁碟 / Streaming 緩衝 |
| 混音 | 同時活躍 Voice 數量 |
| 效果 | Reverb / Convolution / 多重 EQ |
二、策略
| 問題 | 策略 |
|---|---|
| 同時過多非關鍵聲 | 降 Priority / 設虛擬化 |
| 音樂卡頓 | 使用 Streaming |
| 短 SFX 解碼浪費 | 預轉為 ADPCM / PCM |
| 初次播放延遲 | 預讀(Prefetch) |
三、Voice 限制示例
設定 SFX 最大 Voice(例 64)。超過時:先淘汰低 Priority → 改為 Virtual。
四、Streaming 選擇
| 類型 | 適合 | 不適合 |
|---|---|---|
| Streaming | 長音樂、長環境 | 短促發 SFX |
| Memory(載入記憶體) | 短高頻率 SFX | 大檔案長循環 |
五、監測流程
- Profiler 連線
- 觀察:同時 Voice、CPU、Memory Usage
- 找出尖峰(區段時間戳)→ 針對調整素材或路由
六、壓縮權衡
- Vorbis:較小體積,CPU 解碼成本中等
- ADPCM:中等體積,解碼輕,適合大量 SFX
- PCM:體積最大,性能最好,僅用於極需原音品質素材
🚀 下節預告:Profiler 與 Debug 工具
下一節將實際看如何用 Voice Monitor / Advanced Profiler / RTPC Monitor 定位問題,建立性能日誌。
🎊 恭喜!你已具備『設計可持續擴張音頻系統』的效能思維!