C 優化程式

2021-04-22 19:54:13 字數 1667 閱讀 3723

(1)自定義程式的入口

(2)合併區段

(3)不用調malloc,free等函式

(3)不用cout來輸出,cin來輸入

(4)如果呼叫了很多庫函式如memset,stycpy等等

的話,請匯入msvcrt.lib,不然編譯器會在程式裡面

匯入靜態庫,這樣的話程式就會大很多。。

(5)window

程式設計不用mfc...

減少程式執行記憶體佔用量可以呼叫

setprocessworkingsetsize(getcurrentprocess(),-1,-1);

----------sample.cpp---------------------

#include 

#include "sample.h"

#include "mydll.h"

#include "resource.h"

//這下面自定義函式入口

#pragma comment(linker, "/entry:entrypoint")

#pragma comment(linker,"/align:0x400")

//設定區段屬性,跟區段在記憶體起始位址

//這裡面要加寫入的許可權,不然程式就執行不了了

//e為執行,r為可讀,w為可寫

//更多的說明請參見msdn

#pragma comment(linker,"/section:.text,erw /align:0x1000")

//下面合併區段,

#pragma comment(linker,"/merge:.data=.text")

#pragma comment(linker,"/merge:.rdata=.text")

//下面匯入函式

#pragma comment(lib,"mydll.lib")

//下面是函式的入口

//得到winmain裡面的幾個引數

//hinstance hinstance=getmodulehandle(null)

//lpstr lpcmdline= getcommandline()

//int ncmdshow  這個可以自己填

void entrypoint()

int_ptr callback sample::dialogproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)

break;

} return 0;

} sample::sample(hinstance hi)

int sample::wndpro_command(wparam wparam,lparam lparam)

return 0;

} int sample::wndpro_close()

int sample::init()

int sample::loaddll()

uint malloc_(size_t num)

void free_(void * p)

void zeromem(char * mem,int len)

int apientry test(hwnd hwnd)

-----------------------

C程式優化

1 在做任何執行速度上的優化時,須充分考慮優化後 體積開銷缺陷 2 提倡使用查表方法 3 求餘,除法,乘法盡量採用位運算代替 4 平方運算,改為乘法運算 5 迴圈判斷條件盡量簡單明瞭 6 使用 do while 迴圈替代for and while迴圈 7 迴圈展開,可手動迴圈展開,也可由編譯器完成,...

C 程式效能優化

一段c程式,功能開發完成,開始效能優化。當然是先用 pg 編譯,再gprof看 熱點 在 很快找到,是計算hash值的函式,於是換了個更快的hash函式 fnv 速度提高了一些。接著把該hash函式內聯 inline 程式又快了一些。內聯函式不是解決效能問題的靈丹妙藥,因為inline之後gprof...

C程式優化之路(二)

本文講述在編寫c 程式 的常用優化辦法,分為i o 篇,記憶體篇,演算法篇,mmx 彙編篇。二 記憶體篇 i 優化陣列的定址 在編寫程式時,我們常常使用乙個一維陣列a m n 來模擬二維陣列a n m 這個時候訪問a一維陣列的時候 我們經常是這樣寫a j m i 對於a j i 這樣寫當然是無可置疑...