freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

李林linux第一講前言-在線瀏覽

2025-01-25 10:06本頁面
  

【正文】 ? 什么是進程上下文 ? 編譯方面 ? 什么是編譯單元、為什么會有重定義 ? 算法方面 ? 為什么時間復雜度一樣的兩個算法,實際執(zhí)行時間會有數(shù)量級差異 ? 數(shù)據(jù)庫方面 ? 怎樣寫 sql語句,才會高效 ? 缺乏一種適合于計算機軟件系統(tǒng)的學習方法 總體的學習方法 ——系統(tǒng)觀 ? 總體思想 ?“少”量的知識 + ―猜測、實證、構(gòu)建” =系統(tǒng)觀 高級語言 底層物理模型 軟件架構(gòu) 核 心 課 程 及 課 程 設 計 猜 測 、 實 證 、 構(gòu) 建 站在處理器的角度,利用反匯編技術(shù),理解使用C/C++所編寫的程序的執(zhí)行細節(jié) 站在軟件設計的角度,利用 C/C++所蘊含的程序設計思想,理解架構(gòu)的設計方法 總體的學習方法 ——系統(tǒng)觀 ? 從高級語言到底層物理模型 ? 從高級語言到軟件架構(gòu) 總體的學習方法 ——系統(tǒng)觀 ? 從高級語言到底層物理模型 ? 從高級語言到軟件架構(gòu) 總體的學習方法 ——系統(tǒng)觀 ? 為什么高級語言到底層物理模型這么重要? ? 問題 1: struct stru1 { char a。 }。 int main() { addr()。 } void addr() { long k。 p = amp。 } void loop() { long i, j。 for (i = 0。i++) { (*p)。 printf(―%d\n‖, i)。 int a[10]。 i = 10。 printf(―%d\n‖, i)。 } 總體的學習方法 ——系統(tǒng)觀 ? 問題 4: void main() { int * i。 printf(―*i = %d‖, *i)。 *i = 3。 for(int i = 0。 i++) f()。 printf(%d\n, t2 t1)。 for(int i = 0。 i++) g()。 printf(%d\n, t4 t3)。 } ? 答案: f快。 for(int i=0。 i++) for(int j=0。 j++) a[i][j] = 0。 for(int i=0。 i++) for(int j=0。 j++) a[j][i] = 0。速度大大提高。 int b = 0。 } else { b = 2。 int b = 0。 } else { b = 1。(執(zhí)行這幾條指令的幾個階段:如從內(nèi)存中取指令、譯碼、準備操作數(shù)等等) ? 當遇到條件跳轉(zhuǎn)指令時,有可能提前做的準備是無用功 —— 跳轉(zhuǎn)發(fā)生了,很影響效率 ? 靜態(tài)分支預測:若跳轉(zhuǎn)是向下的,則預測為不跳轉(zhuǎn)(多為if類語句);若跳轉(zhuǎn)是向上的,則預測為跳轉(zhuǎn)(多為循環(huán)語句) ? 通常,大概率發(fā)生的分支,放在 if分支中,不要放在 else分支中 總體的學習方法 ——系統(tǒng)觀 ? 問題 7: ? 緩存是提高運行速度的不二法寶 ? 比如寄存器是最快的 ? 一級緩存、二級緩存次之 ? 內(nèi)存 ? SSD ? 一般磁盤 ? 將要用的文件全部緩存到內(nèi)存,一定會提高訪問速度嗎?為什么? ? 頁面的換入換出 ? Windows進程的線性地址空間、映射、物理地址 總體的學習方法 ——系統(tǒng)觀 ? 問題 8: ? 多線程一定具有比單線程更高的并發(fā)性嗎?為什么? ? 考慮多線程的網(wǎng)絡服務器模型 ? 當有客戶請求到達時,就創(chuàng)建一個線程,讓其為客戶服務 ? 客戶感受到的時間開銷包括:創(chuàng)建線程的時間、完成客戶請求的時間、線程銷毀的時間、線程切換的時間 ? 若采用單線程模型,即只有一個線程,客戶感受到的時間包括:完成客戶請求的時間、在隊列中排隊等待的時間 ? 若完成客戶請求的速度很快,快于客戶到達的速度,那么就沒有了排隊的時間,顯然比多線程快 ? 實際上只要排隊的時間 線程創(chuàng)建、銷毀、切換的時間,單線程都優(yōu)于多線程 總體的學習方法 ——系統(tǒng)觀 ? 問題 9: ? 同樣數(shù)目的多層次的 if- else語句和 switch語句哪個執(zhí)行速度更快?為什么? ? 為什么 switch語句必須是整數(shù)而不能是浮點或字符串。為什么呢? 總體的學習方法 ——系統(tǒng)觀 ? 為什么有這么多種軟件設計的思想? ? 結(jié)構(gòu)化的思想 ? 基于對象的思想 ? 面向?qū)ο蟮乃枷? ? 基于接口的思想 ? 基于模板的靜態(tài)的面向?qū)ο蟮乃枷? ? 面向方面的思想 ? 函數(shù)式的思想 ? ????????? ? 為了應對軟件開發(fā)中的各類變化 ? 軟件開發(fā)的最大本質(zhì)就是手工開發(fā)模式,再加上其邏輯形態(tài),使其開發(fā)過程中變化點特別多 ? 為什么有這么多種軟件開發(fā)的管理方法? ? 傳統(tǒng)的方法 ? XP ? Scrum ? ?????? 總體的學習方法 ——系統(tǒng)觀 ? 項目初始時,用戶自己都不知道自己需要的是什么 —— 漢弗萊定律 ? 隨著項目的推進,對軟件產(chǎn)品的理解逐漸加深,提出很多需求變化,甚至到了驗收階段還要求增加新功能 ? 而軟件產(chǎn)品的邏輯形態(tài)又加劇了這一現(xiàn)象 ? 從管理層面講,應盡可能地使各類變化(需求、設計、實現(xiàn)、人員等等)帶來的影響降到最低 ? 例如敏捷開發(fā)的生命周期 ? 對用戶變化的延遲就是一次迭代周期;而基本的瀑布模型則是整個生命周期 ? 之所以有多種管理方法,就是從不同的角度來考慮如何降低變化點帶來的影響 總體的學習方法 ——系統(tǒng)觀 ? 從技術(shù)層面講,當有變化產(chǎn)生時,當用戶要增加新功能時,我們希望只需要增加新代碼,而不用修改老代碼 —— 代碼的封閉性 ? 也是降低變化帶來的影響 ? 之所以有多種程序設計的思想,就是從不同的角度來思考如何應對變化點,如何做到代碼的封閉性 ? 按照不同的程序設計思想,寫出來的代碼之間將具有不同的組織關(guān)系 ? 函數(shù)之間、類之間、模塊之間、子系統(tǒng)之間都存在著各種關(guān)系 ? 這種關(guān)系包含調(diào)用關(guān)系等等 ? 代碼之間存在的關(guān)系,被稱為架構(gòu) ? 因此,小到函數(shù)間,大到模塊間均存在架構(gòu)。后面幾次,將結(jié)合系統(tǒng) API進行展示,以達到按照現(xiàn)代程序設計思想,靈活運用 API的教學目的 加法器例子 ? 版本 1:結(jié)構(gòu)化的思想 ? 需要實現(xiàn)一個加法器:在這個加法器中,已經(jīng)保存了被加數(shù);現(xiàn)在需要傳遞加數(shù)給這個加法器,以讓其返回加法計算結(jié)果。 ? 思路: ? 既然還有一部分代碼要用老的加法器,那么老加法器我們還是要保留的 ? 按照原有思路開發(fā)新的加法
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1