2011-10-31 32 views

回答

1

大小,速度和内存使用。

你的用户并不需要你使用的所有调试工具,所以剥离调试符号可以减少二进制大小和内存消耗(因此可以提高速度,因为将程序组件加载到RAM中花费的时间更少) 。

当您的应用程序崩溃时,通常需要回溯和细节。你的用户真的不会在意这一点。

+0

只是一个错字。我不是邪恶的。 – Blender

0

部署调试版本没有任何问题。人们通常不会这样做,因为非调试版本往往更有效率(即,断言代码被删除,编译器不会在目标代码中插入跟踪/调试器信息)。

0

利用Java 1.1的调试版本可能会慢得多,他们需要更多的磁盘空间(在那个时候,磁盘与120兆巨大 - 尽量适应这样的小型设备上的主目录.. )。

今天,这两个都不是问题了。 Java运行时忽略了调试符号,并且使用JIT,代码在运行时进行了优化,因此编译时优化不再那么重要。

调试版本的一大优势是生产中的代码正是您测试的代码。

0

这完全取决于构建配置,在进行“发布”构建时可能会有编译优化。还有其他的考虑因素,依赖于语言;例如,使用Visual C++编译应用程序时,可以针对不允许重新分发的C RunTime(CRT)的调试版进行编译。

0

我认为这里的关键是确定究竟是什么使构建“调试构建”。主要是生产版本更加优化(内存使用率,性能等),并且已经采取更多的关注来构建它,以便于部署和维护。我遇到的一个主要问题是调试版本有很多不需要的日志记录,导致性能非常显着。

除此之外,调试版本不应该被部署到生产环境中没有真正的原因。