J2ME 堆疊極小(老機型僅 200KB),OutOfMemoryError 是開發噩夢。本文分享記憶體分析工具、佔用大戶(程式碼、圖片、音效)與實戰優化策略。
System.out.println(Runtime.getRuntime().freeMemory()) 即時輸出剩餘堆疊,整合進引擎定位峰值。getResourceAsStream() 載入,不用即設 null。System.gc()。公式:寬 × 高 × 像素位元組數
×1.5 → 64×64 圖 = 6 KB×2 → 同尺寸 = 8 KB錯誤迷思:壓縮 PNG(減小檔案大小)不減少記憶體佔用,載入後皆展開為原始像素。
優化策略:
MIDI 音軌轉 OTT 格式,轉為 ByteArrayInputStream 建立 Player,減少解碼記憶體佔用。
善用 Runtime.freeMemory() 定位峰值,配合上述策略,可在 200KB 堆疊上跑出商業級遊戲。