我在谷歌關閉中粘貼了以下代碼以減小尺寸,選擇了「高級」選項。谷歌關閉優化
for(var i =0;i<7;++i)
{
alert(6);
}
編譯後,我得到了
for(var a=0;7>a;++a)alert(6);
那麼,什麼是不斷變化的變量名 'a' 和變更條件,7>的而不是< 7的優點是....有沒有任何性能改進。如果是這樣,爲什麼?
我在谷歌關閉中粘貼了以下代碼以減小尺寸,選擇了「高級」選項。谷歌關閉優化
for(var i =0;i<7;++i)
{
alert(6);
}
編譯後,我得到了
for(var a=0;7>a;++a)alert(6);
那麼,什麼是不斷變化的變量名 'a' 和變更條件,7>的而不是< 7的優點是....有沒有任何性能改進。如果是這樣,爲什麼?
高級模式選擇可能的最短名稱。它以'a'開始。重新排序是爲了最大化gzip壓縮。對於像你這樣的片段,這兩者都不會有幫助,但這些與其他轉換可以對更重要的代碼庫產生巨大影響。一般來說,編譯器轉換的目標是代碼大小而不是性能,但至少是性能中立。
「抓地力」你的意思是gzip?如何重新排序改善? – 2012-03-04 22:16:52
代碼大小越一致,gzip就越好。因此,如果您同時具有「x == 1」和「1 == x」,則將兩者都更改爲「x == 1」會導致更好的gzip壓縮。編譯器不會試圖確定它是否會在個案基礎上提供幫助,它總是會做到這一點。 – John 2012-03-09 16:43:01
感謝您的解釋,我可以看到它將有助於壓縮。 – 2012-03-09 21:31:45
無。我想你只是看到無用的轉換的犧牲品,它們的引擎在嘗試優化它之前將語法樹放入規範形式。
更改一個<7 to 7>a是爲了方便彙總表達式中的常量,以及希望獲得更好的gzip壓縮(因爲如果同時具有> 7和7 2012-03-05 01:57:38