大家在閱讀北京網站建設之C程序建設的相關內容時如果遇到網站建設問題、企業網站建設問題、生物網站建設問題等所有與網站建設相關的問題都可以聯係我們的在線客戶進行谘詢。

4、關於以內存換速度的問題
在C程序建設中內存和速度一直接程序員們無法兼顧的問題,大多數情況,速度同內存(或者是性能,比如說壓縮性能什麼的)是不可兼得的。目前C程序建設行業中程序加速的常用算法就是利用查表法來避免計算,這樣原來的複雜計算用查表就可以解決了。如,在jpg有huffman碼表,在YUV到RGB變換也有變換表。
這種做法雖然浪費了內存,但是速度即有了顯著的提升。在數據庫查詢裏麵也有類似的方式,如將熱點存儲起來以加速查詢。
5、優化數組的尋址
程序員在編寫程序時,常常會使用一個一維數組a[M×N]來模擬二維數組a[N][M]的問題,在訪問a[]一維數組的時寫成a[j×M+i](對於a[j][i]),這就是一維數值的尋址。雖然,這樣寫是沒有問題的,但是這樣做後每個尋址語句j×M+i都要進行一次乘法運算。
二維數值的尋址則是不同的,二維數組要比(模擬該二維數組)一維數組尋址效率高。因為a[j][i]的尋址隻是訪問了指針數組得到j行的地址,然後再+i,是沒有乘法運算的。下麵從二維數組的結構來分析,二維數組的結構可以分為兩部分:
①是一個指針數組,存儲的是每一行的起始地址,這也就是為什麼在a[N][M]中,a[j]是一個指針而不是a[j][0]數據的原因。
②是真正的M×N的連續數據塊,這解釋了為什麼一個二維數組可以象一維數組那樣尋址的原因。(即a[j][i]等同於(a[0])[j×M+i])
6、鏈表的優化問題
很多程序員在遇到鏈表問題時都會想“我們需要鏈表嗎”的問題,雖然我們在編寫一些耗時算法時采用了鏈表的形式,但是這樣對內存的占用(似乎)少了,但是卻忽略了速度。所以在這裏分形科技建議:程序員在編寫耗時大的代碼時,盡可能不要采用鏈表!因為實際上采用鏈表並不能真正節省內存。
上文接《北京網站建設之C程序建設相關知識總結》












