所謂代碼優(yōu)化是指對程序代碼進(jìn)行等價(jià)(指不改變程序的運(yùn)行結(jié)果)變換。程序代碼可以是中間代碼(如四元式代碼),也可以是目標(biāo)代碼。等價(jià)的含義是使得變換后的代碼運(yùn)行結(jié)果與變換前代碼運(yùn)行結(jié)果相同。優(yōu)化的含義是最終生成的目標(biāo)代碼短(運(yùn)行時(shí)間更短、占用空間更小),時(shí)空效率優(yōu)化。 主要步驟:精簡代碼;頭部優(yōu)化,權(quán)重標(biāo)簽使用及圖片優(yōu)化。在這四個(gè)環(huán)節(jié)中,精簡代碼是最基礎(chǔ)、最根本。 精簡代碼是指清除或者簡化頁面中的代碼,從而達(dá)到降低頁面體積、提高頁面的用戶體驗(yàn)及搜索引擎優(yōu)化性的目的。 精簡代碼又分五個(gè)小步驟: 1.清理垃圾代碼;垃圾代碼是指那些在刪除的情況下也不會影響頁面正常顯示的非必要代碼。不要小看這些代碼,他占據(jù)了很大的空間,不僅影響性能還影響搜索引擎的計(jì)算時(shí)間,所以代碼**是手寫,如果用frontpage,word,dreamweaver,等工具寫的話,產(chǎn)生的垃圾代碼會非常多,所以手動(dòng)清理掉。 2.html標(biāo)簽轉(zhuǎn)換;html標(biāo)簽轉(zhuǎn)換,主要是指使用短標(biāo)簽替換在網(wǎng)頁中實(shí)現(xiàn)同樣效果的長標(biāo)簽。例如與,兩周都是對字體加粗,但是比多出五個(gè)字符,如果頁面很多的話,就會產(chǎn)生很多冗余代碼。 3.css優(yōu)化;css優(yōu)化。css優(yōu)化主要是改變css的調(diào)用方式,以及避免使用css為重要內(nèi)容定義樣式。使用div+css方式制作頁面,一方面防止垃圾代碼,另一方面可以減少重復(fù)代碼。這種方式對搜索引擎非常友好。 4.js優(yōu)化以及表格優(yōu)化;js優(yōu)化。js對搜素引擎極不友好。目前搜索引擎不能解析javascript生成的頁面或者內(nèi)容。所以重要的內(nèi)容不能用js腳本生成; 5.表格優(yōu)化,傳統(tǒng)的頁面基本都是用table。但是這種方式對搜索引擎非常不友好,所以不建議用table 6.盡量少用無用的圖片和flash。內(nèi)容索引所派出的搜索引擎爬蟲,不認(rèn)識圖片,只能根據(jù)圖片“ALT,TITLE”等屬性的內(nèi)容判斷圖片的內(nèi)容。對于flash搜索引擎爬蟲更是視而不見。 7. 盡量不使用表格布局,因?yàn)樗阉饕鎸Ρ砀癫季智短?層以內(nèi)的內(nèi)容懶的去抓取。搜索引擎爬蟲有時(shí)候也是比較懶的,望各位一定要保持代碼和內(nèi)容在3層以內(nèi)。 進(jìn)行優(yōu)化所需要的基礎(chǔ)是對代碼進(jìn)行數(shù)據(jù)流分析和控制流分析。如劃分DAG,查找循環(huán),分析變量的定值點(diǎn)和引用點(diǎn)等等。最常用的代碼優(yōu)化技術(shù)有刪除多余運(yùn)算,循環(huán)不變代碼外提,強(qiáng)度削弱,變換循環(huán)控制條件,合并已知量與復(fù)寫傳播,以及刪除無用賦值等等。