Latest

健康檢查

最近做了健康檢查,以下是快速筆記: 繳交糞檢 尿檢 血液 (裝成三瓶) 心臟 (貼至少十個貼片,然後分別連接上管子) X光 (正面、側面) 肛門 身高和體重、體脂肪和骨頭密度等等、視力、辨色力、眼壓 照胃鏡前 (右手注射葡萄糖並留著注射器、喝胃乳、嘴巴噴麻藥兩次:一次先吞下去、之後含一下吞下去、側躺在闖上戴上呼吸器、右手注射麻藥時痛痛的)

對於「The Stack Is An Implementation Detail」系列文章之筆記

The Stack Is An Implementation Detail系列文由Eric Lippert所寫
Eric Lippert曾經在微軟工作,部落格為Fabulous adventures in coding

- - - 第一篇的筆記 - - -


第一篇之前看完了但沒做筆記
也許等重看時再補上


- - - 第二篇的筆記 - - -



allocation 分配
deallocation 釋放

heap有holes

formal parameter或parameter像是下面舉例的Test函式中的的x:
void Test(int x)
{
    ...
}

呼叫函式時的x則稱作argument:
Test(x)


文章中寫了garbage collection (GC)的運作:
"When a garbage collection is performed there are three phases: mark, sweep and compact. In the “mark” phase, we assume that everything in the heap is “dead”. The CLR knows what objects were “guaranteed alive” when the collection started, so those guys are marked as alive. Everything they refer to is marked as alive, and so on, until the transitive closure of live objects are all marked. In the “sweep” phase, all the dead objects are turned into holes. In the “compact” phase, the block is reorganized so that it is one contiguous block of live memory, free of holes."

簡單來說就是GC有三個階段:mark、sweep、compact




CLR collector是世代相傳的
放在heap裡的object的生命週期有:長、中、短之分
從短週期的開始,如果存活下來就移動到中週期的,再來則到長週期的
GC時常在短週期的heap裡執行;長週期的則相反
他們這麼做的想法是不想花費時間檢查長週期的,此外得迅速回收短週期的

留言

這個網誌中的熱門文章

公司職務 × 英文縮寫 × 中文對照 (2023.04.21 更新)

健康檢查

【Unity】TextMesh Pro 顯示中文