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

正文內(nèi)容

算法合集之論反匯編在時間常數(shù)優(yōu)化中的應(yīng)用-wenkub

2022-10-31 20:35:04 本頁面
 

【正文】 ~2 3. ptr取地址值, push+pop堆棧運算 *2, jmp跳轉(zhuǎn)運算 4 4. mul, imul乘法 5 5. div, idiv除法 25 6. call+ret 調(diào)用子函數(shù) +返回 27 數(shù)據(jù)分析 一、關(guān)于調(diào)用常數(shù)因子的優(yōu)化 ? 調(diào)用常數(shù)因子是指在函數(shù)調(diào)用過程中 push pop(有的編譯器如 cl用 mov實現(xiàn))和 call ret等匯編偽代碼在調(diào)用過程中的耗費。 } 分析 memset(table,0,sizeof(table))。j++) for (i=0。 char field[Total/Time]。 return 0。j10。 const int Time=你喜歡的合法的數(shù)值 。 ? 然而在競賽中,漸進(jìn)時間復(fù)雜度是人們關(guān)注的重點,而同樣能夠決定程序運行快慢的常數(shù)因子優(yōu)化問題卻缺乏重視。 緒言 ? 在 Visual C++語言環(huán)境下,從特定編譯器生成的匯編代碼出發(fā),我探討了反匯編在常數(shù)因子優(yōu)化中的應(yīng)用,并提出了若干優(yōu)化改進(jìn)方案。 char field[Total/Time]。j++) for (i=0。 } ? 你能直接答出 Time值與運行速度的關(guān)系? ? 觀看右邊的 C++程序 (假設(shè)計算機(jī)具有足夠大的內(nèi)存) 試驗結(jié)果02468100 2 4 6 8T i m e 值的對數(shù)運行時間(秒)D e b u g 模式 Release模 式分析 可能你認(rèn)為 Time值不影響程序時間復(fù)雜度,因此對程序的速度無影響。 int i,j。iTime。 00401001 xor eax,eax 00401003 mov ecx,9C40h 00401008 mov edi,offset table 0040100D rep stos dword ptr [edi] ? Release模式下編譯器對 memset語句的處理如下 ? Debug模式下編譯器對 memset語句的處理如下 memset(field,0,sizeof(field))。 ? 雖然調(diào)用過程在 Release模式下會被自動優(yōu)化,但是在某些只提供 Debug模式的競賽環(huán)境中,我們該如何優(yōu)化?所以本文主要闡述在 Debug模式下的調(diào)用常數(shù)因子優(yōu)化 。b) { int t=a。 004133AD lea eax,[b] 004133B0 push eax 004133B1 lea ecx,[a] 004133B4 push ecx 004133B5 call swap (41158Ch) 004133BA add esp,8 1、 Debug模式 不使用子函數(shù) 使用宏定義 1、 Debug模式 ? 所以,在競賽中應(yīng)針對這個問題進(jìn)行優(yōu)化,這里本文提供了兩種替代方案: int tmp。 } Release模式 ? 與 Debug模式不同的是,在 Release模式下,任何函數(shù)會被優(yōu)先嘗試作為 inline函數(shù),所以在代碼中顯式指定 inlin
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1