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