這篇文章主要介紹PostgreSQL怎么閱讀源代碼,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
為岫巖等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及岫巖網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、成都做網(wǎng)站、岫巖網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
自底向上的方法
????先說自底向上的方法。簡單來說,就是從一個具體的小功能點出發(fā)閱讀和實踐,然后再由此小功能擴(kuò)展逐步的向上上溯到大模塊,就好比種上一顆小樹,每天的施肥澆水,如果方法得當(dāng)自然可以長成參天大樹。
????以閱讀PG的源代碼為例,可以通過psql從插入一行數(shù)據(jù)的最小方法/函數(shù)(PageAddItemExtended)為出發(fā)點,深入理解該函數(shù)后,使用gdb跟蹤該函數(shù)的調(diào)用棧,根據(jù)調(diào)用棧的函數(shù)信息逐步上溯到最頂層的調(diào)用入口函數(shù)或主函數(shù),每上溯一層就把該層函數(shù)相關(guān)的數(shù)據(jù)結(jié)構(gòu)、宏定義和依賴的子函數(shù)完全徹底的理解清楚。通過這么一個過程,把插入數(shù)據(jù)相關(guān)聯(lián)的知識體系建立起來,比如Page存儲結(jié)構(gòu)、Buffer的管理、WAL日志相關(guān)管理、SQL解析執(zhí)行、前后臺接口等相關(guān)知識。有了這個脈絡(luò),有了相關(guān)的數(shù)據(jù)結(jié)構(gòu)作為基礎(chǔ),再來理解其他操作,比如UPDATE/DELETE等DML、CREATE TABLE/ALTER TABLE等DDL語句、SELECT等查詢語句等就相對容易很多。
自頂向下的方法
????與自底向上的方法相對的是自頂向下的方法,閱讀源代碼的初期可以使用這種方法建立源代碼的體系結(jié)構(gòu),有利于全局把控,就好比原來一棵大樹,如果一開始關(guān)注某片樹葉,某個枝干,自然無感,但如果從主樹干出發(fā)來看整個大樹,那就基本可以看到這顆大樹的全貌了。
????閱讀細(xì)節(jié)的時候可以使用自頂往下的方法嗎?我的個人經(jīng)驗是不太適合,還是以大樹做個類比吧。從主樹干出發(fā),這時候有N個子干,從某個子干進(jìn)入,有M個分支,從分支進(jìn)入子分支,又有X個子子分支,除非腦容量夠大,否則里面的細(xì)節(jié)會讓人望而生畏。
以上是“PostgreSQL怎么閱讀源代碼”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!