发布在调试模式下编译的Flash应用程序的缺点

时间:2011-09-30 01:54:30

标签: flash actionscript-3 debugging release-mode

我想在发布模式下但在调试模式下释放我的Flash应用程序 在发布应用程序后查看trace()的结果
我不关心调试模式会使处理速度变慢 除了处理速度之外,在调试模式下编译闪存应用程序是否有缺点?

由于调试模式,应用程序是否可能引发应用程序用户崩溃的异常或Flash播放器?

2 个答案:

答案 0 :(得分:4)

这里有一些缺点。我做了一些简单的测试,并没有真正证明任何东西,因为他们不知道它是由不同的玩家引起的,以及额外的内存/文件大小值是否增加线性或保持在该水平。他们只是表明存在分歧。

  • 文件大小增加
    • 在一行中测试(mxmlc 4.5.1)空文档类:
      • -debug=false:550字节
      • -debug=true:667 Bytes
    • 为每行代码添加一个额外的行号指令(甚至可能为每个声明/语句/表达式添加)
  • 包含您的项目结构:.as文件的完整路径。
    • 可能存在隐私问题(可以显示本地用户名)
    • 显示内部项目名称,如果在路径
    • 中使用,则可能是内部版本
    • 可能表示使用过的操作系统和/或IDE
  • 内存消耗增加
    • 观察任务管理器的非常简单的测试:for循环创建本地对象
      • debug:~6300k - 7400k
      • 发布:~5800k - 6900k
  • 较慢(如问题中已提到的)

我不确定 security 是否是一个问题,因为跟踪语句不会显示任何无法从内存中提取或通过反编译重建的内容。也许跟踪的存在表明它可能是应用程序的关键部分,但一般来说,即使非调试字节码仍然包含那些跟踪指令。反编译器可以使用行号来创建更漂亮的代码。

答案 1 :(得分:2)

@kapep的回答是关于调试模式对你的swf做的事情。

但是对跟踪使用调试模式并不是必需的 - 在发布模式下编译并使用其他调试工具,如

并且可能使用日志记录框架来使用普通的跟踪语句以及外部记录器捕获的语句。

我可以在这里推荐这个:parsley+spicelib

这是一本简短的手册:http://www.spicefactory.org/parsley/docs/2.0/manual/logging.php#intro