最近對iOS逆向工程進行了些研究,由于iOS系統(tǒng)的封閉性,iOS的逆向研究需要使用到一些工具,包括Mac端與iOS客戶端。本文對逆向App Store的應(yīng)用的整個過程進行了一...
最近對iOS逆向工程進行了些研究,由于iOS系統(tǒng)的封閉性,iOS的逆向研究需要使用到一些工具,包括Mac端與iOS客戶端。本文對逆向App Store的應(yīng)用的整個過程進行了一...
基本功1,翻轉(zhuǎn)鏈表 206. Reverse Linked List 循環(huán)外2根指針,循環(huán)內(nèi)NEXT指針。 92. Reverse Linked List II https:...
@阿菜的博客 對于第一個條件,在并發(fā)標(biāo)記階段,如果該白對象是new出來的,并沒有被灰對象持有,那么它會不會被漏標(biāo)呢?Region中有兩個top-at-mark-start(TAMS)指針,分別為prevTAMS和nextTAMS。在TAMS以上的對象是新分配的,這是一種隱式的標(biāo)記。對于在GC時已經(jīng)存在的白對象,如果它是活著的,它必然會被另一個對象引用,即條件二中的灰對象。如果灰對象到白對象的直接引用或者間接引用被替換了,或者刪除了,白對象就會被漏標(biāo),從而導(dǎo)致被回收掉,這是非常嚴(yán)重的錯誤,所以SATB破壞了第二個條件。也就是說,一個對象的引用被替換時,可以通過write barrier 將舊引用記錄下來。
摘自知乎
G1 詳解目錄: 1.G1 介紹 2.G1 young GC 3.G1 mixed GC 4.三色標(biāo)記算法 5.STAB 6.Rset 1.G1 介紹 G1收集器(或者垃圾優(yōu)先收集器)...
首先RSet是Point-into,CardTable是Point-Out。
Young GC時,在某個Region,目標(biāo)是知道這個區(qū)域的對象有哪些在被引用。如果沒有RSet,就需要遍歷所有的Old Regions,才能確定誰引用了我這個區(qū)域的對象。這樣就跟CMS一樣了,掃描效率比較低。
Full GC時,同樣的,一個Old區(qū)域,如何判斷這個區(qū)域的對象還有沒有人引用,使用RSet也快一點。
所以Rset可以減少GC的掃描范圍,效率提高。
G1 詳解目錄: 1.G1 介紹 2.G1 young GC 3.G1 mixed GC 4.三色標(biāo)記算法 5.STAB 6.Rset 1.G1 介紹 G1收集器(或者垃圾優(yōu)先收集器)...