2011-09-30 107 views
2

我想释放我的Flash应用程序不处于发布模式,但在调试模式下发布 以在发布应用程序后查看trace()的结果。

我不在乎调试模式使处理速度慢一点。
除了处理速度,释放在调试模式下编译的Flash应用程序是否有缺点?

由于调试模式,应用程序是否有可能抛出应用程序用户的异常或Flash Player崩溃?发布在调试模式下编译的Flash应用程序的缺点

+2

调试增加约9K的文件大小。闪存调试播放器用于通过公共错误,但大约10+它只将错误引发到远程调试会话(很好,但不是)。如果您还没有,我建议您从闪存进行远程调试。 – Jacksonkr

+1

如果您将痕迹()放入其中,它可能对您有所帮助以进行调试是的,但它也可能对尝试了解您的应用/游戏并潜在窃取它的黑客有所帮助。那就是......如果你在项目的每个关键部分留下痕迹。 – bigp

回答

4

这里有一些缺点。我做了一些简单的测试,但它们并没有真正证明任何事情,因为他们不知道是否是由不同播放器引起的,以及额外的内存/文件大小值是否增加线性或保持在该级别。他们只是表明有差异。

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

我不知道如果安全是一个问题在这里,因为跟踪报表不要透露任何无法从内存中提取或通过反编译重构的内容。也许跟踪的存在表明它可能是应用程序的关键部分,但通常甚至非调试字节码仍包含这些跟踪指令。行号可以被反编译器用来创建漂亮的代码。

+2

如果您提供包含'C:\ Users \ Smecksy133tKillerJoe \ retarded clients \ screwed \ very_unstable_alpha \ com \ banana \ Main.as'的东西,并且仍然期望获得报酬,则包含的项目结构可能最差。 – Kapep

+0

谢谢! 我不喜欢在我的计算机上公开文件路径,但幸运的是我为我的项目使用无意义的目录名称。内存消耗和文件大小对我来说并不重要。 所以我要在调试模式下发布我的应用程序。 –

2

@kapep的回答是正确的调试模式对你的瑞士法郎做的事情。

,但它不是neccessary使用调试模式的痕迹 - 在发布模式下编译并使用不同的调试工具,像

和也许可以使用日志框架来使用正常的跟踪语句以及外部日志记录器捕获的语句。

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

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

相关问题