c語言記憶體操作優化

2022-07-04 02:48:14 字數 869 閱讀 4127

1. 使用乘法代替除法。如果不需要較高的精度,使用float代替double。

2. 如果乙個函式內部會頻繁地使用全域性變數,可以使用區域性變數作為全域性變數的拷貝。

3. 棧總是保持對齊在4位元組邊界(32位cpu),區域性變數定義為char或short並不能帶來儲存空間上的節省,且會降低變數訪問速度。因此,在不修改對齊方式的情況下,盡量將區域性變數定義為32位。

4. 需要使用結構體作為函式引數時,使用指標代替。

5. 需要時,使用 for( i = 10; i--; ) 代替 for( i = 0; i < 10; i++)

6. 能夠使用暫存器傳遞的函式引數個數是有限制的。例如,4個以內的函式引數可能被保持在暫存器中,多餘的引數會被壓入棧。

7. 盡量安排經常被呼叫的函式成為葉子函式。葉子函式是指不再呼叫其他函式的函式,包括c語言庫函式。

8. 提高檔案訪問速度的主要辦法有兩個:一是採用記憶體對映檔案,二是使用記憶體緩衝。

使用記憶體緩衝區方法的好處主要是便於移植,占用記憶體少,便於硬體實現等。下面是讀取檔案的c偽碼:

int

len;

byte buffer[

8192

];assert(buffer==null);

if buffer

isempty

如果要使用記憶體對映檔案,必須:

1).處理的檔案比較的小,

2).處理的檔案很大,但是執行環境記憶體也很大,並且一般在執行該程式的時候不執行其他消耗記憶體大

的程式,同時使用者對速度有特別的要求,而且對記憶體占用沒有什麼要求。

如果以上兩個條件不滿足的時候,建議使用記憶體緩衝區的辦法。

c程式優化之路--i/o篇

c語言常用記憶體優化總結

c語言記憶體操作

記憶體 malloc 原理 操作及注意事項 void malloc size t size 申請乙個所需大小的記憶體空間 void calloc size t nitems,size t size 申請乙個所需大小的記憶體空間,並設定內容為零 void realloc void ptr,size t...

C語言常用記憶體優化總結

1.使用乘法代替除法。如果不需要較高的精度,使用float代替double。2.如果乙個函式內部會頻繁地使用全域性變數,可以使用區域性變數作為全域性變數的拷貝。3.棧總是保持對齊在4位元組邊界 32位cpu 區域性變數定義為char或short並不能帶來儲存空間上的節省,且會降低變數訪問速度。因此,...

c語言記憶體操作函式

一 malloc calloc 名稱 malloc calloc 功能 動態記憶體分配函式 標頭檔案 include h 函式原形 void malloc size t size void calloc size t num,size t size 引數 size 分配記憶體塊的大小 num分配記憶...