发布以调试模式编译的Flash应用程序的缺点
我想不是在发布模式下而是在调试模式下发布我的flash应用程序 发布应用程序后查看跟踪()的结果。发布以调试模式编译的Flash应用程序的缺点,flash,actionscript-3,debugging,release-mode,Flash,Actionscript 3,Debugging,Release Mode,我想不是在发布模式下而是在调试模式下发布我的flash应用程序 发布应用程序后查看跟踪()的结果。 我不在乎调试模式使处理速度有点慢。 除了处理速度之外,发布在调试模式下编译的flash应用程序是否存在缺点? 应用程序是否可能抛出异常或应用程序用户的Flash播放器因调试模式而崩溃?以下是一些缺点。我做了一些简单的测试,但并没有真正证明什么,因为它们无法判断这是否是由不同的玩家造成的,以及额外的内存/文件大小值是线性增加还是保持在该水平。它们只是表明存在差异 增加文件大小 在单行中测试(
我不在乎调试模式使处理速度有点慢。
除了处理速度之外,发布在调试模式下编译的flash应用程序是否存在缺点?
应用程序是否可能抛出异常或应用程序用户的Flash播放器因调试模式而崩溃?以下是一些缺点。我做了一些简单的测试,但并没有真正证明什么,因为它们无法判断这是否是由不同的玩家造成的,以及额外的内存/文件大小值是线性增加还是保持在该水平。它们只是表明存在差异
- 增加文件大小
- 在单行中测试(mxmlc 4.5.1)空文档类:
:550字节-debug=false
:667字节-debug=true
- 为每行代码(甚至可能为每一个声明/语句/表达式)添加额外的行号指令
- 在单行中测试(mxmlc 4.5.1)空文档类:
- 包含项目结构:指向.as文件的完整路径。
- 可能的隐私问题(可能显示本地用户名)
- 显示内部项目名称,如果在路径中使用,可能是内部版本
- 可能表示使用了操作系统和/或IDE
- 内存消耗增加
- 观察任务管理器的非常简单的测试:for循环创建本地对象
- 调试:~6300k-7400k
- 释放:~5800k-6900k
- 观察任务管理器的非常简单的测试:for循环创建本地对象
- 较慢(如问题中所述)
我不确定这里是否存在安全问题,因为跟踪语句不会显示任何无法从内存中提取或通过反编译重建的内容。跟踪的存在可能表明它可能是应用程序的关键部分,但一般来说,即使是非调试字节码也仍然包含这些跟踪指令。反编译器可以使用行号来创建更漂亮的代码。@kapep的答案是正确的,关于调试模式对swf所做的事情 但是跟踪不需要使用调试模式——在发布模式下编译,并使用不同的调试工具,如
这里有一个简短的手册:调试会增加大约9k的文件大小。FlashDebug播放器过去常常通过公开错误进行调试,但在大约10+的时候,它只会将错误抛出到远程调试会话中(不错,但不是)。如果您还没有使用flash,我建议您研究远程调试。如果您在其中留下trace()s,这可能有助于您进行调试是的,但也可能有助于试图了解您的应用程序/游戏并可能窃取它的黑客。那就是。。。如果您在项目的每个关键部分都留下痕迹。如果您交付的内容包含
C:\Users\Smecksy133tKillerJoe\delayed clients\screwd\very\u unstable\u alpha\com\banana\Main.as
并且仍然期望获得报酬,那么包含的项目结构可能是最糟糕的。谢谢!我不喜欢在我的计算机上公开文件路径,但幸运的是,我在我的项目中使用了无意义的目录名。内存消耗和文件大小对我来说并不重要。所以我将以调试模式发布我的应用程序。