JSA是一个大概在2006年底开发的JS分析压缩工具,最初出现的时候相比同类产品,优势明显。
后来出现了yuicompressor,风光不再了,两者貌似压缩比例差距很小。都已经接近了语法压缩的极限。
无聊一下,分析一下相比YUI,JSA到底还有拉些优势呢,这可得用专业的眼光:
JSA 压缩结果
function group1(){var A;function $($,_){return $+_+$;}function _(){var _,A,$;function B($,_){return $+_+$;}}}function group3(){var B,_,$;function A($,_){return $+_+$;}}
YUI压缩结果
function group1(){var a;function b(e,d){return e+d+e}function c(){var e,h,g;function f(i,d){return i+d+i}}}function group3(){var c,a,d;function e(f,b){return f+b+f}};
查一下大小:JSA是168,YUI是166字节,怎么搞的,JSA怎么可能比YUI低呢?仔细一看,YUI是开启了语法补全的选项。
晕,跟我玩阴的!你是鸡蛋碰石头。
吧JSA “删除多余括弧”这个选项打开。165字节,差距太小了。
应该吧脚本搞复杂一点:
function group1(){var A;function $($,_){return $+_+$}function _(){var _=1,A=2,$;function B($,_){return $+_+$}}}function group3(){var B=1,_=2,$;function A($,_){return $+_+$}}
function group1(){var a;function b(e,d){return e+d+e}function c(){var e=1;var h=2;var g;function f(i,d){return i+d+i}}}function group3(){var c=1;var a=2;var d;function e(f,b){return f+b+f}};
结果是173->190
优势明显一点了。
将结果zip处理一下:85/106
优势进一步加大。
这些数据大家可能会觉得晕了,好了,我现在就解释一下产生这些差异的原因吧。
总结
1。语法优化上的优势:
YUI在转换优化等价语法,去处可兼容语法,导致语法压缩结果本身差距,如合并var、如删除多余括弧,分号等,这方面能力相比JSA还有较大差距。
2。JSA也更有利于Gzip压缩
JSA 在变量重用的算法更好,对于类似的语法结构能翻译成相同的结果。
如函数“function $($,_){return $+_+$}” JSA中三次出现相同结构,结果都翻译成相同的文本,而YUI是没有做到这点。
根据文本压缩的原理,只有重复率更高,才能达到更好的gzip压缩结果。
分享到:
相关推荐
在当今数字化的时代,电脑游戏已经成为许多人日常娱乐活动中不可或缺的一部分。...然而,在享受它带来的便捷的同时,我们也应该意识到,任何技术手段都有其利弊,只有合理利用,才能最大化地发挥其优势。
调用`goToSleep`时,你需要传入一个参数,即休眠原因的标识码,这有助于系统追踪休眠的原因,例如`PowerManager.SLEEP_REASON_USER`表示用户手动触发的休眠。 `wakeUp`方法则是用于唤醒设备的。当设备处于休眠状态...
首先,我们要理解Zigbee的几种不同休眠模式:空闲模式(Idle)、休眠模式(Sleep)和深度休眠模式(Deep Sleep)。空闲模式是设备在不发送或接收数据时进入的状态,但仍能监听网络活动;休眠模式则进一步降低功耗,...
VB 代码关机待机休眠 VB 语言是一种流行的编程语言,广泛应用于Windows 操作系统平台上。通过 VB 语言,我们可以实现各种功能强大的应用程序,包括关机、待机、休眠等操作。 在这个代码中,我们可以看到 VB 语言...
在开发跨平台应用程序时,有时候我们需要检测系统的状态,比如是否处于休眠或唤醒状态。Qt是一个强大的跨平台应用开发框架,支持多种操作系统,包括Windows、Linux、macOS等。在这个场景下,我们关注的是如何在Qt...
S32K14x CAN休眠唤醒的实现 在本文中,我们将讨论S32K14x系列芯片的CAN休眠唤醒的实现方法。S32K14x系列芯片的CAN模块在普通模式下不支持休眠唤醒功能,但是在Pretended Networking模式下可以支持在STOP1和STOP2...
标题中的“绿联ASM1153E芯片硬盘盒关闭休眠工具+教程”涉及到的主要知识点是关于硬盘盒硬件和软件优化的一个特定场景。这里我们可以深入解析一下相关的几个概念: 1. **绿联(UGREEN)**: 绿联是一家知名的消费类...
本文档是关于SIM7600CE-T四代LTE通信模块在嵌入式物联网领域的休眠唤醒应用手册,主要面向使用SIM7600OpenLinux系统的开发者们。文档中详细讲解了模块的休眠唤醒机制、流程以及操作方法,适用于开发者进行二次开发,...
标题中的“JMS567_578设置休眠工具.rar”暗示这是一款针对ORICO 3.5寸硬盘盒的休眠设置调整软件,主要用于管理设备的节能模式。这款硬盘盒,如ORICO 3588US3,通常会预设一个5分钟的休眠时间,即在无操作的情况下,...
#### 三、休眠模式的优势与局限性 虽然休眠模式为用户带来了诸多便利,但它也存在一定的局限性。下面我们来分析一下它的优势与不足之处。 ##### 优势 1. **数据安全性**:即使在突然断电的情况下,数据也不会丢失...
需要注意的是,长期取消休眠可能会增加硬盘的温度,因此建议确保硬盘盒有良好的通风条件,以防止过热。此外,如果你的硬盘是7*24小时连续工作的,建议定期进行检查和维护,以确保其健康状态。 总的来说,JMS567硬盘...
这不仅有助于环保,还能延长硬盘的使用寿命,因为硬盘在休眠状态下其机械部件不会持续运转。重新唤醒硬盘也非常简单,只需要鼠标点击几下即可,无需每次使用前都手动插拔硬盘,极大地提高了使用便利性。 在IT领域,...
移动硬盘有休眠功能的朋友的福音!硬盘插上电脑后,看下移动硬盘盘符,先在c盘新建一个yes.txt记事本文件,然后用记事本打开下载的批处理文件如下: :noparms (c盘文件的位置)(移动硬盘位置) if exist yes.txt ...
根据提供的文档信息,我们可以深入探讨SIM7600模块在Open Linux系统下的休眠与唤醒机制。这份文档主要关注的是如何有效地控制SIM7600模块进入休眠状态以及如何从休眠状态中唤醒模块。下面将详细解析文档中提到的关键...
资源为代码patch,主要修复设置-显示-休眠中无永不休眠选项。为防止语言资源导致报错,重新在arrays添加选项,永不休眠原理只是将时间设置为Integer.MAX_VALUE
在这个特定的案例中,我们有两个批处理文件,`suspend.bat` 和 `sleep.bat`,分别用于实现计算机的待机和休眠功能。 待机和休眠是Windows系统中的两种不同的电源管理模式,它们各自具有独特的特性和用途: 1. **...
### 如何阻止Windows进入休眠状态? 在日常工作中,我们可能会遇到这样的情况:正在运行一些重要的后台任务(如数据同步、文件传输等),但Windows系统却自动进入了休眠模式,导致这些任务被迫中断。为了防止这种...
针对这种情况,绿联提供了一款专门的“关闭休眠”工具,旨在帮助用户禁用硬盘盒的自动休眠功能,以保持设备持续运行。 JMS578芯片是由JMicron公司开发的一款USB到SATA桥接控制器,它能够将传统的SATA硬盘转换为USB...