程式設計珠磯學習筆記(7) 改善效能

2021-05-08 03:46:08 字數 1450 閱讀 3908

使用各種方法對效能進行改善。這裡只簡單列出書內的一些效能優化方法和結果。

更多請參考:

乙個天體物理學研究方面的程式不斷優化的結論(更多還請參考原著

p58):

大家可以以此作為優化程式的參考:

(1)優化的順序;

(2)優化的著眼點。

1問題定義

問題說明和效率具有微秒的互動作用。良好的說明有時會很好的提供使用者認為是必要的東西。 2

系統結構

將大系統分解為模組可能是確定效能時最重要的單個因素。為整個系統提出乙個骨架以後,設計者應該做乙個封底運算以確滿足效能需求。 3

演算法和資料結構

構建快速模組的關鍵通常是資料結構,這些結構表示了資料,以及作用於資料的演算法。 4

**優化 5

系統軟體

有時更改系統所依賴的軟體比更改系統本身更簡單。比如更換資料庫,編譯器等。 6

硬體 執行速度更快的硬體可以提高效能。

最後,請謹記

gardon bell

的話:

計算機系統最便宜、最快速、最可靠的部件就是那些不在那兒的部件。

密西西比河一天的流量?

(1)在靠近河口的地方大約有1英里

寬,20

英呎深(

1/250

英里);

(2)水流速度大約5英里

/小時(

120英里

/天);

一天的流量

= 1英里

* (1 / 250)

英里* 120 英里/天

= 0.5

立方英里/天

我們可以用類似的方法來估算系統的時間,以粗略的測量其效能。

乙個建築大橋的工程師的經驗:

要用安全係數來補償我們對某方面的無知,例如進行可靠性

/可用性承諾時,我們要對我們能滿足的目標有乙個

10的係數,以補償我們的無知。在規模,成本,進度等方面,我們要保留乙個2或

4的係數,以彌補我們在某個方面的缺漏。

4.2利特爾法則

利特爾法則:

系統中物體的平均數量就是系統中物體離開系統的平均比率和每個物體在系統中所花費的平均時間的乘積。

比如乙個地方可以容納

60個人,平均每個進去的人會呆上

3個小時,所以進入率大約就是每小時

20個人,如果你在外面排隊,你前面要是還有

20個人,那你還要等

1個小時才能進入。

4.3原則

當使用封底計算時,一定要回憶一下愛因期坦的名言:

任何事都應該做到盡可能的簡單,除非沒有更簡單的了。

程式設計珠磯學習筆記(1) 位排序

include define bitsperword 32 define shift 5 define mask 0x1f define n 10000000 int a 1 n bitsperword inline void set bit int i inline void clear bit ...

程式設計珠磯學習筆記(4) 擠壓法查詢變位詞

如示例 input 單詞檔案 output 同位詞歸類檔案 constrain 歸類所有為同位詞的單詞 何為同位詞 單詞字母相同,但字母的順序不同 pans 和snap 是同位詞 pots stop 和tops 是同位詞,還有這些 第一步 對每個單詞進行簽名。如這些單詞 我們使用每個單詞的字母序列 ...

程式設計珠磯第一章閱讀筆記

在讀第一章結束之後自己的一些體會和感受 理解到的東西 我認為對自己有用的東西 程式設計開始之前,一定要問問自己想要幹什麼,明確自己的想要做的東西。為什麼這莫做,是什麼原因導致的這莫做。對自己的輸入和輸出一定要明確。從中學到了程式設計開始的時候一定要有緊缺的問題描述。你想要輸入什麼,以神魔楊的型別進行...