CSAPP 讀書(shū)筆記 (1)

寫(xiě)在前面的話(huà):雖然不想說(shuō)侄刽,但是新的一年又開(kāi)始了指黎,整理了硬盤(pán)里的書(shū),發(fā)現(xiàn)自己真的是光顧著收集書(shū)而從來(lái)不看州丹,這簡(jiǎn)直沒(méi)有意義啊醋安,浪費(fèi)在找書(shū)上的時(shí)間并沒(méi)有得到回報(bào)。所以墓毒,先從CSAPP這本書(shū)開(kāi)始吧吓揪,剛好自己電腦內(nèi)有個(gè) ubuntu,那么就開(kāi)始吧所计。


第1章 計(jì)算機(jī)系統(tǒng)漫游

1.4 處理器讀并解釋存儲(chǔ)在存儲(chǔ)器內(nèi)的指令

shell 是一個(gè)命令行解釋器柠辞,它輸出一個(gè)提示符,等待你輸入一個(gè)命令行醉箕,然后執(zhí)行這個(gè)命令钾腺。如果該命令行的第一個(gè)單詞不是一個(gè)內(nèi)置的 shell 命令,那么 shell 就會(huì)假設(shè)這是一個(gè)可執(zhí)行文件的名字讥裤,它將加載并運(yùn)行這個(gè)文件放棒。

關(guān)于 shell 的定義,簡(jiǎn)單明了的解釋己英。

1.4.1 系統(tǒng)的硬件組成
3.內(nèi)存

主存是一個(gè)臨時(shí)存儲(chǔ)設(shè)備间螟,在處理執(zhí)行程序時(shí),用來(lái)存放程序和程序處理的數(shù)據(jù)损肛。從物理上來(lái)說(shuō)厢破,主存是由一組動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)芯片組成的,從邏輯上來(lái)說(shuō)治拿,存儲(chǔ)器是一個(gè)線(xiàn)性的字節(jié)數(shù)組摩泪,每個(gè)字節(jié)都有其唯一的地址(即數(shù)組索引),這些地址是從零開(kāi)始的劫谅。
一般來(lái)說(shuō)见坑,組成程序的每條機(jī)器指令都由不同數(shù)量的字節(jié)構(gòu)成嚷掠。與C程序變量相對(duì)應(yīng)的數(shù)據(jù)項(xiàng)的大小是根據(jù)類(lèi)型變化的。

有關(guān)內(nèi)存的定義

4.處理器

處理器的核心是一個(gè)字長(zhǎng)的存儲(chǔ)設(shè)備(或寄存器)荞驴,成為程序計(jì)數(shù)器(PC)不皆。在任何時(shí)刻,PC 都指向主存中的某條機(jī)器語(yǔ)言指令(即含有該條指令的地址)熊楼。

從系統(tǒng)通電開(kāi)始霹娄,直到系統(tǒng)斷電,處理器一直在不斷執(zhí)行程序計(jì)數(shù)器指向的指令鲫骗,再更新程序計(jì)數(shù)器犬耻,使其指向下一條指令。處理器看上去是按照一個(gè)非常簡(jiǎn)單的指令執(zhí)行模型來(lái)操作的执泰,這個(gè)模型是由指令集結(jié)構(gòu)來(lái)決定的香追。在這個(gè)模型中,指令按照嚴(yán)格的順序執(zhí)行坦胶,而執(zhí)行一條指令包含執(zhí)行指定的步驟。處理器從程序計(jì)數(shù)器(PC)指向的存儲(chǔ)器處讀取指令晴楔,解釋指令中的位顿苇,執(zhí)行該指令指示的簡(jiǎn)單操作,然后更新PC税弃,使其指向下一條指令纪岁,而這條指令并不一定與存儲(chǔ)器中剛剛執(zhí)行的指令相鄰。

這樣的簡(jiǎn)單操作并不多则果,而且操作是圍繞著主存幔翰、寄存器文件(register file)算術(shù)/邏輯單元(ALU)進(jìn)行的。寄存器文件是一個(gè)小的存儲(chǔ)設(shè)備西壮,有一些1字長(zhǎng)的寄存器組成遗增,每個(gè)寄存器都有唯一的名字。ALU計(jì)算新的數(shù)據(jù)和地址值款青。

處理器看上去只是它的指令集結(jié)構(gòu)的簡(jiǎn)單實(shí)現(xiàn)做修,但是實(shí)際上現(xiàn)代處理器使用了非常復(fù)雜的機(jī)制來(lái)加速程序的執(zhí)行。因此抡草,我們可以這樣區(qū)分處理器的指令集結(jié)構(gòu)和微體系結(jié)構(gòu):指令集結(jié)構(gòu)描述的是每條機(jī)器代碼指令的效果饰及;而微體系結(jié)構(gòu)描述的是處理器實(shí)際上是如何實(shí)現(xiàn)的。

原來(lái)CPU是這么工作的啊……CPU通過(guò)寄存器得到主存中的機(jī)器指令并執(zhí)行(按圖索驥么這是)康震,這些概念應(yīng)該在隨后還會(huì)講到燎含,這里的簡(jiǎn)單介紹還比較好理解。

1.6 存儲(chǔ)設(shè)備形成層次結(jié)構(gòu)

存儲(chǔ)器層次結(jié)構(gòu)的主要思想是一層上的存儲(chǔ)器作為第一層存儲(chǔ)器的高速緩存腿短。因此寄存器文件就是L1的高速緩存屏箍,L1是L2的高速緩存绘梦,L2是L3的高速緩存,L3是主存的高速緩存铣除,而主存又是硬盤(pán)的高速緩存谚咬。

一個(gè)存儲(chǔ)器層次結(jié)構(gòu)的示例

1.7 操作系統(tǒng)管理硬件

我們可以把操作系統(tǒng)看成是應(yīng)用程序和硬件之間插入的一層軟件,所有應(yīng)用程序?qū)τ布牟僮鲊L試都必須通過(guò)操作系統(tǒng)尚粘。

操作系統(tǒng)有兩個(gè)基本功能:1)防止硬件被失控的應(yīng)用程序?yàn)E用戏阅。2)向應(yīng)用程序提供簡(jiǎn)單一致的機(jī)制來(lái)控制復(fù)雜而又通常大相徑庭的低級(jí)硬件設(shè)備捐名。操作系統(tǒng)通過(guò)幾個(gè)基本的抽象概念(進(jìn)程、虛擬存儲(chǔ)器和文件)來(lái)實(shí)現(xiàn)這兩個(gè)功能。如圖1-11阶祭,文件是對(duì) I/O 設(shè)備的抽象表示,虛擬存儲(chǔ)器是對(duì)主存和硬盤(pán) I/O 設(shè)備的抽象表示缘挽,進(jìn)程則是對(duì)處理器北发、主存、和 I/O 設(shè)備的抽象表示盔腔。

第10頁(yè)例圖

操作系統(tǒng)的作用杠茬,想起上操作系統(tǒng)課程的時(shí)候老師將硬盤(pán)時(shí)強(qiáng)調(diào)的物理地址和邏輯地址。操作系統(tǒng)應(yīng)該可以看成是一個(gè)超大的底層的應(yīng)用程序吧弛随?其他所有應(yīng)用程序都要運(yùn)行在操作系統(tǒng)之上瓢喉。

1.7.1 進(jìn)程

進(jìn)程是操作系統(tǒng)對(duì)一個(gè)正在運(yùn)行的程序的一種抽象。在一個(gè)系統(tǒng)上可以同時(shí)運(yùn)行多個(gè)進(jìn)程舀透,而每個(gè)進(jìn)程都好像獨(dú)占地使用硬件栓票。而并發(fā)運(yùn)行,則是說(shuō)一個(gè)進(jìn)程的指令和另一個(gè)進(jìn)程的指令是交錯(cuò)執(zhí)行的愕够。傳統(tǒng)系統(tǒng)在一個(gè)時(shí)刻只能執(zhí)行一個(gè)程序走贪,而先進(jìn)的多核處理器同時(shí)能夠執(zhí)行多個(gè)程序。無(wú)論是在單核還是多核系統(tǒng)中惑芭,一個(gè) CPU 看上去都像是在并發(fā)地執(zhí)行多個(gè)進(jìn)程坠狡,這是通過(guò)處理器在進(jìn)程間切換來(lái)實(shí)現(xiàn)的。操作系統(tǒng)實(shí)現(xiàn)這種交錯(cuò)執(zhí)行的機(jī)制稱(chēng)為上下文切換( context switch )遂跟。

操作系統(tǒng)保持跟蹤進(jìn)程運(yùn)行所需的所有狀態(tài)信息擦秽,這種狀態(tài),也就是context漩勤,它包括許多信息感挥,例如 PC 和寄存器文件的當(dāng)前值,以及主存的內(nèi)容越败。在任何一個(gè)時(shí)刻触幼,單處理器系統(tǒng)都只能執(zhí)行一個(gè)進(jìn)程的代碼。當(dāng)操作系統(tǒng)決定要把控制權(quán)從當(dāng)前進(jìn)程轉(zhuǎn)移到某個(gè)新進(jìn)程時(shí)究飞,就會(huì)進(jìn)行**context switch **置谦,即保存當(dāng)前進(jìn)程的 context堂鲤、恢復(fù)新進(jìn)程的 context,然后將控制權(quán)傳遞到新進(jìn)程媒峡,新進(jìn)程就會(huì)從上次停止的地方開(kāi)始瘟栖。

示例場(chǎng)景中有兩個(gè)并發(fā)的進(jìn)程:shell 進(jìn)程和 hello 進(jìn)程。起初谅阿,只有 shell 進(jìn)程在運(yùn)行半哟,即等待命令行上的輸入。當(dāng)我們讓它運(yùn)行 hello 程序時(shí)签餐,shell 通過(guò)調(diào)用一個(gè)專(zhuān)門(mén)的函數(shù)寓涨,即系統(tǒng)調(diào)用,來(lái)執(zhí)行我們的請(qǐng)求氯檐,系統(tǒng)調(diào)用會(huì)將控制權(quán)交給操作系統(tǒng)戒良。操作系統(tǒng)保存 shell 進(jìn)程的 context,創(chuàng)建一個(gè)新的 hello 進(jìn)程及 context冠摄,然后將控制權(quán)傳遞給新的 hello 進(jìn)程糯崎,hello 進(jìn)程終止后,操作系統(tǒng)恢復(fù) shell 進(jìn)程的 context河泳,并將控制權(quán)傳回給它拇颅,shell 進(jìn)程將繼續(xù)等待下一個(gè)命令行輸入。

根據(jù)書(shū)中給的例子乔询,基本能看懂 context switch 在例子中是怎樣一回事了,話(huà)說(shuō)回來(lái)看這本書(shū)真的好像在看操作系統(tǒng)啊韵洋。

1.7.2 線(xiàn)程

在現(xiàn)代系統(tǒng)中竿刁,一個(gè)進(jìn)程實(shí)際上可以由多個(gè)成為線(xiàn)程的執(zhí)行單元組成,每個(gè)線(xiàn)程都運(yùn)行在進(jìn)程的 context 中搪缨,并共享同樣的代碼和全局?jǐn)?shù)據(jù)食拜。

1.7.3 虛擬存儲(chǔ)器

虛擬存儲(chǔ)器是一個(gè)抽象概念,它為每個(gè)進(jìn)程提供了一個(gè)假象副编,即每個(gè)進(jìn)程都在獨(dú)占地使用主存负甸,每個(gè)進(jìn)程看到的是一致的存儲(chǔ)器,成為虛擬地址空間痹届。下圖所示的是 Linux 進(jìn)程的虛擬地址空間(其他 Unix 系統(tǒng)的設(shè)計(jì)也與此類(lèi)似)呻待。在 Linux中,地址空間的底部區(qū)域存放用戶(hù)進(jìn)程定義的代碼和數(shù)據(jù)队腐。下圖所示的地址是從下往上增大的蚕捉。

12頁(yè)例圖

每個(gè)進(jìn)程看到的虛擬地址空間由大量準(zhǔn)確定義的區(qū)構(gòu)成,每個(gè)區(qū)都有專(zhuān)門(mén)的功能柴淘。我們從最低的地址開(kāi)始迫淹,逐步向上介紹

  • 程序代碼和數(shù)據(jù)秘通。對(duì)于所有的進(jìn)程來(lái)說(shuō),代碼是從同一固定地址開(kāi)始敛熬,緊接著的是和 C 全局變量相對(duì)應(yīng)的數(shù)據(jù)位置肺稀。代碼和數(shù)據(jù)區(qū)是直接按照可執(zhí)行目標(biāo)文件的內(nèi)容初始化的。在示例中就是可執(zhí)行文件 hello应民。
    (PS:hello 是通過(guò)鏈接器在鏈接階段獲得的话原,可被加載到內(nèi)存中)
  • 堆。代碼和數(shù)據(jù)后緊隨的是運(yùn)行時(shí)堆瑞妇。代碼和數(shù)據(jù)區(qū)是在進(jìn)程一開(kāi)始運(yùn)行時(shí)就被規(guī)定了大小稿静,于此不同,當(dāng)調(diào)用如 mallocfree 這樣的 C 標(biāo)準(zhǔn)庫(kù)函數(shù)時(shí)辕狰,堆可以在運(yùn)行時(shí)動(dòng)態(tài)地拓展和收縮改备。
  • 共享庫(kù)。大約在地址空間的中間部分是一塊 用來(lái)存放像 C 標(biāo)準(zhǔn)庫(kù)和教學(xué)庫(kù)這樣共享庫(kù)和代碼的數(shù)據(jù)蔓倍。
  • 棧悬钳。位于用戶(hù)虛擬地址空間頂部的是用戶(hù)棧,編譯器用它來(lái)實(shí)現(xiàn)函數(shù)調(diào)用偶翅,和堆一樣默勾,用戶(hù)棧在程序執(zhí)行期間可以動(dòng)態(tài)地拓展和收縮。特別是每次我們調(diào)用一個(gè)函數(shù)時(shí)聚谁,棧就會(huì)增長(zhǎng)母剥,從一個(gè)函數(shù)返回時(shí),棧就會(huì)收縮形导。
  • 內(nèi)核虛擬存儲(chǔ)器环疼。內(nèi)核總是駐留在內(nèi)存中,是操作系統(tǒng)的一部分朵耕。地址空間頂部的區(qū)域是為內(nèi)核保留的炫隶,不允許應(yīng)用程序讀寫(xiě)這個(gè)區(qū)域的內(nèi)容或者直接調(diào)用內(nèi)核代碼定義的函數(shù)。
1.7.4 文件

文件就是字節(jié)序列阎曹。每個(gè) I/O 設(shè)備伪阶,包括磁盤(pán)、鍵盤(pán)处嫌、顯示器栅贴,甚至網(wǎng)絡(luò)熏迹,都可以視為文件癣缅。系統(tǒng)中的所有輸入輸出都是通過(guò)一小組稱(chēng)為 Unix I/O 的系統(tǒng)函數(shù)調(diào)用讀寫(xiě)文件來(lái)實(shí)現(xiàn)的。
文件向應(yīng)用程序提供了一個(gè)統(tǒng)一的視角陶衅,來(lái)看待系統(tǒng)中可能含有的所有各式各樣的 I/O 設(shè)備搀军。進(jìn)一步說(shuō)罩句,同一個(gè)程序可以在使用不同磁盤(pán)技術(shù)的不同系統(tǒng)上運(yùn)行门烂。

這說(shuō)的是硬件無(wú)關(guān)性么屯远?

1.9 重要主題

1.9.1 并發(fā)和并行

并發(fā)(concurrency) 是一個(gè)通用的概念慨丐,指一個(gè)同事具有多個(gè)活動(dòng)的系統(tǒng)泄私;而術(shù)語(yǔ)并行(parallelism)指的是用并發(fā)使一個(gè)系統(tǒng)運(yùn)行得更快。

1.9.2 計(jì)算機(jī)系統(tǒng)中抽象的重要性

在處理器里捅暴,指令集結(jié)構(gòu)提供了對(duì)實(shí)際處理器硬件的抽象斩松。使用這個(gè)抽象惧盹,機(jī)器代碼程序代碼程序表現(xiàn)得好像它是運(yùn)行在一個(gè)一次只執(zhí)行一條指令的處理器上瞪讼。底層的硬件比抽象描述的要復(fù)雜精細(xì)的多符欠,它并行地執(zhí)行多條指令诊沪,但又總是與那個(gè)簡(jiǎn)單有序的模型保持一致端姚。只要執(zhí)行模型一樣渐裸,不同的處理器實(shí)現(xiàn)也能執(zhí)行同樣的機(jī)器代碼昏鹃,而又提供不同的開(kāi)銷(xiāo)和性能洞渤。

17頁(yè)例圖

在學(xué)習(xí)操作系統(tǒng)時(shí)您宪,我們介紹了三個(gè)抽象奈懒,文件是對(duì) I/O 的抽象,虛擬存儲(chǔ)器是對(duì)程序存儲(chǔ)器的抽象磷杏,而進(jìn)程是對(duì)一個(gè)正在運(yùn)行的程序的抽象捏卓。而虛擬機(jī)提供對(duì)整個(gè)計(jì)算機(jī)(包括操作系統(tǒng)极祸、處理器和程序)的抽象怠晴。

1.10 小結(jié)

  • 因?yàn)橛?jì)算機(jī)把大量的時(shí)間用于存儲(chǔ)器遥金、I/O 設(shè)備和 CPU 寄存器之前復(fù)制數(shù)據(jù),所以將系統(tǒng)中的存儲(chǔ)設(shè)備劃分為層次結(jié)構(gòu)蒜田。
  • 在層次結(jié)構(gòu)中稿械,高層的存儲(chǔ)設(shè)備比底層的存儲(chǔ)設(shè)備要快冲粤,單位比特開(kāi)銷(xiāo)也更高梯捕。較高層次存儲(chǔ)設(shè)備可以作為較低層次設(shè)備的高速緩存傀顾。通過(guò)理解和運(yùn)用這種存儲(chǔ)層次結(jié)構(gòu)的知識(shí),程序員可以?xún)?yōu)化 C 程序的性能寒砖。
  • 從特殊角度來(lái)看隆豹,網(wǎng)絡(luò)就是一種 I/O 設(shè)備。

PS : 書(shū)中的1.9節(jié)中茅逮,關(guān)于并行和并發(fā)的三個(gè)層次(15-17頁(yè))可以說(shuō)完全沒(méi)看懂……應(yīng)該在隨后的章節(jié)中還會(huì)進(jìn)一步解釋吧璃赡。先記錄下。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末献雅,一起剝皮案震驚了整個(gè)濱河市碉考,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挺身,老刑警劉巖侯谁,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異章钾,居然都是意外死亡墙贱,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)贱傀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)惨撇,“玉大人,你說(shuō)我怎么就攤上這事府寒】茫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵株搔,是天一觀(guān)的道長(zhǎng)剖淀。 經(jīng)常有香客問(wèn)我,道長(zhǎng)纤房,這世上最難降的妖魔是什么纵隔? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮炮姨,結(jié)果婚禮上捌刮,老公的妹妹穿的比我還像新娘。我一直安慰自己剑令,他們只是感情好糊啡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布拄查。 她就那樣靜靜地躺著吁津,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碍脏,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天梭依,我揣著相機(jī)與錄音,去河邊找鬼典尾。 笑死役拴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的钾埂。 我是一名探鬼主播河闰,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼褥紫!你這毒婦竟也來(lái)了姜性?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤髓考,失蹤者是張志新(化名)和其女友劉穎部念,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體氨菇,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡儡炼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了查蓉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乌询。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖奶是,靈堂內(nèi)的尸體忽然破棺而出楣责,到底是詐尸還是另有隱情,我是刑警寧澤聂沙,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布秆麸,位于F島的核電站,受9級(jí)特大地震影響及汉,放射性物質(zhì)發(fā)生泄漏沮趣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一坷随、第九天 我趴在偏房一處隱蔽的房頂上張望房铭。 院中可真熱鬧,春花似錦温眉、人聲如沸缸匪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)凌蔬。三九已至露懒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砂心,已是汗流浹背懈词。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辩诞,地道東北人坎弯。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像译暂,于是被迫代替她去往敵國(guó)和親抠忘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理外永,服務(wù)發(fā)現(xiàn)褐桌,斷路器,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • 一象迎、溫故而知新 1. 內(nèi)存不夠怎么辦 內(nèi)存簡(jiǎn)單分配策略的問(wèn)題地址空間不隔離內(nèi)存使用效率低程序運(yùn)行的地址不確定 關(guān)于...
    SeanCST閱讀 7,808評(píng)論 0 27
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,111評(píng)論 25 707
  • 1.原來(lái)有些樹(shù)不是不會(huì)開(kāi)花劫乱,只是不適合织中,或者錯(cuò)過(guò)了開(kāi)花的年齡。 2.歲月褪去了灰白衷戈,我發(fā)現(xiàn)我的天空依舊像童話(huà)般蔚藍(lán)...
    Alones閱讀 497評(píng)論 5 5
  • “天那狭吼!少谷主居然帶回來(lái)了這么個(gè)絕色美女啊殖妇!” “是啊~這也太美了吧刁笙,少谷主果然好本事∏ぃ” “不如.....咱們先...
    隼舞閱讀 288評(píng)論 0 0