首页 文章

调试和发布模式之间的性能测试

提问于
浏览
2

我正在测试性能 . 程序通过TCP连接从其他端接收大量字节并解析为目标结构 .

如果我在Debug(F5)中尝试它,非常认真地延迟 . 但如果我在Release(Ctrl F5)中尝试它,它的工作非常顺利 . 我使用WireShark检查情况,TCP窗口更新语句让我知道接收端的状态 .

我想知道我是否想制作最终用户程序 . 该程序应该在调试模式和发布模式下工作?

数据大小非常大,传输间隔很短 . 在这种情况下,调试和发布之间的性能差异将是非常明确的?我无法看到那种差异 .

3 回答

  • 0

    您应该只考虑发布模式进行编程 . 它确实是应用程序唯一可以覆盖最终用户的版本 . 调试模式仅适用于“管家”和调试 . 不是用户的关注 .

  • 1

    这个问题混淆了两个不同的问题 . 一个是Debug与Release版本 . 由于众多原因,调试版本速度较慢,所有这些都旨在使调试更容易 .

    第二个问题是在调试器(F5)下启动应用程序而不是在调试器(Ctrl F5)下启动应用程序会影响性能 . 在调试器下启动时,Windows堆会执行额外的检查,OutputDebugString的处理和模块加载可能需要更长时间等 .

    这两个问题是完全正交的 . 您可以在调试器下启动Release版本,也可以在调试器下启动Debug版本 .

    如果问题是Debug构建速度慢,那么,是的,它们是 . 您可以通过在某些源文件中启用优化或关闭调试迭代器来稍微控制这一点,但调试版本应该稍慢 .

    如果问题是在调试器下启动的构建速度较慢,那么在关心性能时不要这样做 . 您可以随后附加调试器,这将避免一些减速,或者根本不附加调试器 .

  • 0

    发布应用程序时,应仅以“发布”模式进行编译 . 调试模式用于在开发时真正“调试” .

相关问题