2012-03-04 112 views
1

我在谷歌關閉中粘貼了以下代碼以減小尺寸,選擇了「高級」選項。谷歌關閉優化

for(var i =0;i<7;++i) 
{ 
    alert(6); 
} 

編譯後,我得到了

for(var a=0;7>a;++a)alert(6); 

那麼,什麼是不斷變化的變量名 'a' 和變更條件,7>的而不是< 7的優點是....有沒有任何性能改進。如果是這樣,爲什麼?

+1

更改一個<7 to 7>a是爲了方便彙總表達式中的常量,以及希望獲得更好的gzip壓縮(因爲如果同時具有> 7和7 2012-03-05 01:57:38

回答

2

高級模式選擇可能的最短名稱。它以'a'開始。重新排序是爲了最大化gzip壓縮。對於像你這樣的片段,這兩者都不會有幫助,但這些與其他轉換可以對更重要的代碼庫產生巨大影響。一般來說,編譯器轉換的目標是代碼大小而不是性能,但至少是性能中立。

+0

「抓地力」你的意思是gzip?如何重新排序改善? – 2012-03-04 22:16:52

+0

代碼大小越一致,gzip就越好。因此,如果您同時具有「x == 1」和「1 == x」,則將兩者都更改爲「x == 1」會導致更好的gzip壓縮。編譯器不會試圖確定它是否會在個案基礎上提供幫助,它總是會做到這一點。 – John 2012-03-09 16:43:01

+0

感謝您的解釋,我可以看到它將有助於壓縮。 – 2012-03-09 21:31:45

3

無。我想你只是看到無用的轉換的犧牲品,它們的引擎在嘗試優化它之前將語法樹放入規範形式。