Actionscript 3 AS3源代码的熵

Actionscript 3 AS3源代码的熵,actionscript-3,size-reduction,Actionscript 3,Size Reduction,我正试图决定是为一组复杂的可配置业务逻辑规则生成AS3代码,还是将它们表示为数据,并在AS3中编写一个状态机来解释它 我的目标是获得最小的编译swf大小。速度不是问题。实现复杂性也不是一个问题。(当然,两者都在合理范围内。) 我不能透露足够的细节,我知道我可能应该做实验而不是提问,但我的问题是: 当编译为swf时,AS3源的平均压缩比是多少?每千字节的源代码有多少字节的swf (我完全理解,答案充其量只是一个非常粗略的数字。)请记住,SWF文件已经经过zlib压缩,因此在大多数情况下,可以通过数

我正试图决定是为一组复杂的可配置业务逻辑规则生成AS3代码,还是将它们表示为数据,并在AS3中编写一个状态机来解释它

我的目标是获得最小的编译swf大小。速度不是问题。实现复杂性也不是一个问题。(当然,两者都在合理范围内。)

我不能透露足够的细节,我知道我可能应该做实验而不是提问,但我的问题是:

当编译为swf时,AS3源的平均压缩比是多少?每千字节的源代码有多少字节的swf


(我完全理解,答案充其量只是一个非常粗略的数字。)

请记住,
SWF
文件已经经过zlib压缩,因此在大多数情况下,可以通过数据方式或代码方式消除任何相对增益


如果初始加载速度是您所追求的,那么您始终可以将代码块分解出来,并根据需要从另一个SWF文件中加载它。

有关已编译SWF的一些事实:

  • 类名被保留
  • 成员名称将被保留
  • 局部变量名不被保留
  • 注释和空白被删除
因此,这个比率将取决于标识符、注释甚至制表符或空格的长度。如果您通过模糊器运行结果SWF,该模糊器将类名替换为A0、A1等。您应该保存一些字节


您的状态机想法似乎是最有前途的——代码只编写一次,规则可以用简洁的方式编写。如果你能把小的数字压缩成一个整数,那就更好了(AS3中没有小于4字节的整数和整数)。

不,我只关注大小和大小。那么,不管怎样,代码的比率是多少?嗯,但是编译后的代码是用zlib压缩的。。。很难说我的状态机数据是否比编译代码更易于压缩。这就是为什么我要数字…为什么不做实验呢?添加一些函数和度量字节。硬比率或“正确”比率并不存在,你需要自己的数字。