目前的專案做到一段落了,然後在發佈時還是遇到記憶體和 GC 問題,而且通常在發佈后才會面臨到不少的回報,很多時候内部測試因爲量級、設備、環境諸多因素很難第一時間發現

例如,某個 Update 裡多一個 Linq、某段 UI 每幀抓一次 GetComponentsInChildren。等到 Profiler 上看到 GC.Alloc 尖峰,要回頭找來源就很花時間。

偶然看到 Unity 官方介紹的 Project Auditor,這是一個靜態分析工具。它不需要執行遊戲,直接掃描程式碼、資源和專案設定,列出可能影響效能與記憶體的問題,也會附上說明和建議修法。這篇記錄我用它分析專案的流程,以及挑出來的幾個記憶體問題要怎麼改。

- 閱讀剩餘部分 -

接續上一篇内容,如果只有 8 年的城市指標數據的情況下想做趨勢分析,線性迴歸對小樣本和離群值都不友善。這時候我們可以使用 Mann–Kendall,可以套用在這樣的應用場景 —— 非參數、不假設常態、配上 Sen's slope 估斜率比 OLS 還抗噪。


在此我們先討論為什麼線性迴歸在這裡不夠用

- 閱讀剩餘部分 -

這個項目的構思從一開始是如此的,譬如我獲取到城市的 44 個地點 × 7 個指標 × 8 個年份的城市數據,我想要判斷「高建築密度的點是不是傾向跟其他高密度點聚在一起」,後來我使用了空間自相關概念 —— Moran's I。


一、空間自相關

假設你手上有城市 44 個採樣點的建築密度數據。如果你只看「平均值 + 標準差」,你只知道整體分佈的形狀,卻無法觀察到空間結構信息:

  • 隨機分佈:高密度點到處散落,沒有規律
  • 聚集分佈:高密度的點都擠在某幾個區塊(譬如市中心 + 副都心)
  • 棋盤分佈:高低密度交錯,鄰居總是相反

- 閱讀剩餘部分 -