调试和发布版本之间可能会出现差异? [关闭]

2024-01-14

今天在一次采访中,我被要求列出四个差异:may发生在调试和发布版本之间。我想它们意味着行为上的差异,而不是诸如调试信息之类的差异。我只能说出两个:

  1. 由于某些函数未内联,调试构建通常要慢得多。
  2. 由于速度差异,在具有竞争条件的多线程程序中,这些竞争条件可能仅在两个构建之一中变得明显。

我还能说出哪些其他差异?


以下是一些差异的总结:http://msdn.microsoft.com/en-us/library/aa236698%28v=vs.60%29.aspx http://msdn.microsoft.com/en-us/library/aa236698%28v=vs.60%29.aspx。这包括:

  • 堆布局(使用调试内存分配器)
  • 宏(包括断言语句,以及“#ifndef NDEBUG”中包含的任何内容,在某些情况下可能存在重大差异 - 例如,我知道某些 boost 库在调试模式下编译时会向结构添加额外的字段,这可以是用于执行健全性检查)
  • 优化(主要在调试版本中禁用)
  • 初始化和错误指针:未初始化的变量在分配给它们之前具有未定义的状态;但在调试版本中,它们通常会被初始化为某种已知状态(例如全零或全#CCCCCCCC等)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调试和发布版本之间可能会出现差异? [关闭] 的相关文章

随机推荐

  • 使文本高度为 div 的 100%?

    我正在尝试使文本的高度为 100 div但它不起作用 它只是变成了100 body font size 有什么办法让它跟随div高度吗 The div高度是整个页面的 4 当您调整大小 更改分辨率时 我不希望文本跟随它 为了获得我想要的结果
  • 是否可以在打字稿中创建动态 getter/setter?

    我是 TypeScript 新手 我正在尝试将我们的应用程序从 es2016 重写为 TypeScript 我的任务是拥有一个具有数据属性的类 并使数据对象中的每个元素可用作类属性 我被这段 JavaScript 代码困住了 for let
  • Django:关闭http响应消息的控制台输出

    所以我们用 django 制作了一个应用程序 每次收到请求时它都会在控制台上打印所有这些 http 响应消息 Date String GET urlpath blah blah 200 216 Date String DELETE anot
  • jQuery 数据表问题

    当使用jQuery 数据表插件 http datatables net 为什么我会收到此错误 k 未定义 style typeof e saved aaSorting 未定义 我发布这个答案是为了记录一些东西以供自己将来参考 我希望它能对其
  • EqualityComparer.Default 不够聪明

    我正在阅读源代码EqualityComparer
  • 带有圆角的 AppWidget 图像

    因此 我通过在应用程序的主布局中向用户显示的各种视图进行动画处理 在应用程序中动态创建图像 目前 我正在相对布局中生成场景 将布局图像作为位图 然后将位图保存到 SD 以便 appwidget 通过 uri 访问 这一切都工作得很好 但是
  • 如何在Linux内核中找到sk_buff的所有者套接字?

    我正在尝试找到一个的所有者插座sk buff举例来说 skb 我的最终目标是找到特定的 TCP 选项并以某种方式让用户空间应用程序知道 我打算在找到TCP选项时设置一个套接字选项并让用户空间应用程序调用getsockopt 因此我需要知道之
  • Python 字符串转 Int 或 None

    学习Python 有点卡壳 我正在尝试将变量设置为等于int stringToInt 或者如果字符串为空则设置为None 我尝试做variable int stringToInt or None但如果字符串为空 则会出错 而不仅仅是将其设置
  • Django模型列表顺序字段更新

    我有一张桌子 比方说Book 具有以下模型定义 class Book models Model name models CharField name of the book max length 10 sequence models Int
  • System.Threading.Tasks.Dataflow 和 Microsoft.Tpl.Dataflow 之间有什么区别

    有 2 个不同的官方 TPL Dataflow nuget 包 我很困惑选择应该使用哪一个 据我了解 System Threading Tasks Dataflow 版本比其他版本稍新 而且 System Threading Tasks D
  • 警告 - 初始化使指针来自整数而不进行强制转换

    我发现了类似的问题 但我认为它们不适用于我的具体问题 所以如果它们适用 我很抱歉 我作为一年级 CS 学生正在学习 C 并尝试用 C 进行测验 但我一无所获 因为每次我尝试编译以查看它是否正常工作时 我都会收到消息 警告 初始化使指针从未经
  • 新数据框列作为另一个数据框的函数(摘要)对我不起作用

    我想创建一个新的计算列 另一列文本的摘要 为了让您重现 我创建了一个 df 作为可重现的示例 df lt data frame name replicate 1000 paste sample LETTERS 20 replace TRUE
  • 如何添加case语句以在每条记录后添加break?

    每行之后应该有一个休息时间LIKE A 当找到下一条记录时LIKE B stmt con gt prepare SELECT FROM fistevent WHERE Event Id AND TicketType AND row name
  • 无需 jQuery 即可获得 innerWidth() 等效项

    我目前正在努力从我编写的一些代码中消除 jQuery 并且我有一部分代码 其中我正在计算某些代码的内部和外部宽度span元素 这好像是 getBoundingClientRect 对于获取元素的外部宽度效果很好 但我在获取内部宽度方面有点困
  • 如果参数有成员变量则特殊化函数

    我有一个模板化的错误报告函数 因为它可以报告许多不同消息类别的错误 template
  • 将希腊字符和星号 (*) 添加到轴标题

    我想在 R 中的直方图的 x 轴上添加一个希腊字符 我可以单独写希腊字符或与帽子一起写 但问题是我需要这个字符带有帽子和星号 一起 更具体地说 我想要像 hat phi 这是我所做的 x rnorm 1000 hist x nclass 1
  • sublime text-“列出包含“查找”字符串的行

    如何列出包含 find 命令中的匹配项的行 即 我想在单独的窗口中列出所有匹配的行 目前只能转到下一个 上一个 查找 Try Find in Files Cmd Shift F on a Mac presumably Ctrl Shift
  • 多个线程同时使用同一个 JDBC 连接

    我试图更好地理解如果多个线程尝试使用相同的 JDBC 连接同时执行不同的 sql 查询会发生什么 结果在功能上是否正确 对性能有何影响 会穿线A必须等待线程B完全完成其查询 或者会穿线A能够在线程之后立即发送其查询B已发送查询 之后数据库将
  • 如何使用 Hibernate Criteria 选择嵌套属性

    我有三个实体 例如注册 用户和国家 地区 基本上 一个注册属于一个用户 一个用户属于一个国家 现在我尝试使用以下内容从注册中选择国家 地区名称 Criteria criteria getSession createCriteria Regi
  • 调试和发布版本之间可能会出现差异? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi