Latest

與學校老師相關的英文稱呼

project advisor 專題指導老師 class tutor 班導 (XXX Course) Instructor (XXX課) 授課老師 mentor 導師 (不確定具體使用的時機) 參考: [問題] "Relationship to you" 要怎麼填 - 看板 studyabroad - 批踢踢實業坊

對於「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裡執行;長週期的則相反
他們這麼做的想法是不想花費時間檢查長週期的,此外得迅速回收短週期的

留言

這個網誌中的熱門文章

國泰世華信用卡 異常簽帳消費

打火機處理記 (注意,有爆炸危險!) (2021.09.11 更新)