《unix程式設計藝術》第十二章 優化

2021-10-24 16:40:20 字數 557 閱讀 5399

最好的優化就是不做優化

12.2 先估量,再優化

在有真憑實據證明程式執行緩慢時,才考慮進行優化,在優化前要先估量再進行實施。

要先明確程式的瓶頸在那裡在開始進行優化,使用效能剖析程式profiler來進行估量。使用工具的出現的幾個主要的問題體現在:工具本身自己執行而產生的誤差;外部的時延;過度的呼叫圖中頂部的節點。

將收集到的資料進行數學模型,進行分析,得出結果,得知問題出現的原因,在進行優化。

12.3 非定域性之害

最有效的優化方法是保持**的短小簡單,永遠不要將核心資料結構和時間關鍵迴圈丟擲快取

12.4 延遲和吞吐量

為了得到良好的效能而進行協議的設計是非常重要的。而協議設計最重要的就是儘量減少協議的往返。

盡可能的低的延遲,忽略頻寬的成本。三種減少時延的常規策略:

1、對可以共享開啟的事務進行批處理,將可以同時開啟的事務進行批處理開啟。

2、允許事務進行重疊,多個請求一起傳送,而不要必須等待乙個請求響應之後,在傳送新的請求。

3、使用快取,將一些必須的、公用的資料儲存在快取中,就不要每次都去重複的請求資料。

Objective C 程式設計 第十二章

預處理程式語句使用 開頭,一行中的第乙個非空字元。大部分內容都與c語言類似,相當於複習啦。預定義不是變數。不能為它賦值。實際上是字元的簡單替換。define語句常放在 import或 include語句後邊。定義乙個名稱後,可以在任何地方使用。一般放在標頭檔案,方便在多個原始檔中使用。所有預定義的名...

第十二章 併發程式設計

1 併發 邏輯控制流在時間上重疊 2 併發程式 使用應用級併發的應用程式稱為併發程式。3 三種基本的構造併發程式的方法 1 需要乙個sigchld處理程式,來 僵死子程序的資源。2 父子程序必須關閉各自的connfd拷貝。對父程序尤為重要,以避免儲存器洩露。3 套接字的檔案表表項中的引用計數,直到父...

第十二章 併發程式設計

構建併發伺服器的方法 在父程序中接收客戶端連線請求,然後建立乙個新的子程序來為每個新客戶端提供服務。假設現在有兩個客戶端和乙個伺服器,伺服器正在監聽乙個監聽描述符上的連線請求。併發過程如下 1 伺服器接受客戶端1的連線請求 2 伺服器派生乙個子程序為這個客戶端1服務 3 伺服器接受另乙個客戶端2的連...