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