# 記憶體歸還實驗的附加資料

2026-10-30測量。CPython 3.11.2 / Linux 6.12 / aarch64 / glibc 2.36 / 4 KiB頁面 / 標準pymalloc。

`phases.csv`記錄每個處理階段。`main`是未啟用tracemalloc的主要測量，每個條件使用3個全新行程（rep），每個行程2個週期（cycle）。`traced`是另外執行的tracemalloc診斷，每個條件1個全新行程、1個週期。不要混合兩者的RSS來彙整。

case：large為1個32 MiB bytearray；small為80,000個bytearray(256)；sparse在相同資料中每64個保留1個；cycles為80,000個自己參照自己的Node，各自附帶bytearray(256)。物件與list的管理空間另計。

phase：baseline為每週期GC與trim後、建立資料前；allocated為建立後；dropped為移除外部參照後；idle_3s為約3秒後；forced_gc為手動完整GC後；anchors_released為清空保留參照並追加GC後；trimmed為malloc_trim(0)後。

rss_mib是當下RSS，rss_delta_mib是與該週期baseline的差值，pss_mib為PSS，anonymous_mib為Anonymous，皆來自smaps_rollup。1 MiB等於1,048,576位元組。elapsed_s是行程內開始觀測後的秒數。gc_wall_ms與gc_cpu_ms為手動GC的經過時間與行程CPU時間，其他phase為0。collected空欄表示該階段的回收數沒有記在這個欄位，不表示沒有執行GC；baseline與anchors_released之前也有GC。

sample_alive是循環Node的32個weakref樣本中仍存活的數量，不是所有Node的存活總數。gc_events計算測量callback註冊後觀察到的已完成GC次數，也包含觀測準備的GC。traced_delta_mib為tracemalloc追蹤配置量相對週期基準的增量，tracemalloc_bookkeeping_mib為追蹤管理空間。main沒有追蹤，兩欄均為0；它們不代表全部原生記憶體配置。

timeline.csv是main中約每200 ms的觀測。elapsed_s從每個行程的第一個baseline開始，與phases.csv的時間原點不同。RSS、PSS、Anonymous與cgroup的memory.current分開存放，cgroup計入的量不等於RSS。

CPU上限0.25核心、記憶體上限128 MiB、swap上限0。每週期前有GC與trim，循環條件也有保持參照時的GC，因此不能推廣為自然閒置的長期行為或一般應用程式的暫停時間。圖表誤差棒是3個行程×2週期的6筆觀測最小到最大值，不是信賴區間。

資料不含內部原始日誌、連線目標、主機名稱、PID、使用者服務名稱或內部路徑。
