休眠一年有餘的JSA,優勢依然

2021-08-30 01:45:55 字數 1124 閱讀 3345

jsa是乙個大概在2023年底開發的js分析壓縮工具,最初出現的時候相比同類產品,優勢明顯。

後來出現了yuicompressor,風光不再了,兩者貌似壓縮比例差距很小。都已經接近了語法壓縮的極限。

無聊一下,分析一下相比yui,jsa到底還有拉些優勢呢,這可得用專業的眼光:

[b]jsa 壓縮結果[/b]

function group1()function _()}}function group3()}

[b]yui壓縮結果[/b]

function group1()function c()}}function group3()};

查一下大小:jsa是168,yui是166位元組,怎麼搞的,jsa怎麼可能比yui低呢?仔細一看,yui是開啟了語法補全的選項。

暈,跟我玩陰的!你是雞蛋碰石頭。

吧jsa 「刪除多餘括弧」這個選項開啟。165位元組,差距太小了。

應該吧指令碼搞複雜一點:

function group1()function _()}}function group3()}

function group1()function c()}}function group3()};

結果是173->190

優勢明顯一點了。

將結果zip處理一下:85/106

優勢進一步加大。

這些資料大家可能會覺得暈了,好了,我現在就解釋一下產生這些差異的原因吧。

[b]總結[/b]

1。語法優化上的優勢:

yui在轉換優化等價語法,去處可相容語法,導致語法壓縮結果本身差距,如合併var、如刪除多餘括弧,分號等,這方面能力相比jsa還有較大差距。

2。jsa也更有利於gzip壓縮

jsa 在變數重用的演算法更好,對於類似的語法結構能翻譯成相同的結果。

如函式「function $($,_)」 jsa中三次出現相同結構,結果都翻譯成相同的文字,而yui是沒有做到這點。

根據文字壓縮的原理,只有重複率更高,才能達到更好的gzip壓縮結果。

一年有多久?

上個週末,我們部門出去組織出去玩,計畫書上聲稱可以玩整個週末,時間比較緊張,以至於週六早上7點一刻就要集合出發,老實說,我平常上班也沒起的這麼早過,唯一的例外就是當初學車的時候,幾乎次次都要六點起床,去趕那該死的早班車,以至於使我滿腔的學車熱情驟減。最後雖然本是順利拿到了,不過對車是一點興趣也沒有了...

Apple Watch 一年有感

watch 和 iphone 將日常活動劃分為了三類 除此之外,活動檢測應用還會在每天取得一定成績時,通過 badge 的方式來獎勵你,比如達成雙倍活動目標或者達成每週或每月成就 即該月的每天都達成了活動目標 遊戲規則是如此的簡單,我不知道這是蘋果精心制定的規則,還是剛好碰上了。但無論怎樣,我很吃這...

程式人生 畢業一年有感

畢業一年有感 不知道為什麼,最近一直想寫這篇文章但又無從下手,拖了快兩個星期 我想大概是自己太懶,沒有好好總結過去的一年,也就覺得沒什麼可寫吧。但無論如何,終究還是提筆記錄過去的一年。畢業出來工作,對我而言感覺並沒有什麼新奇和不適應,這些新奇和不適應早在研一進入導師公司的時候就經歷過,深知整天上下班...