C 程序 77% 的时间都花在 _platform_memmove$VARIANT$Haswell 中 [已关闭]

2023-12-06

我正在分析一些用 C 编写的数字代码(分析器是 Instruments,编译器是clang在 Mac OSX 10.11.6 上)。多达 77.3% 的运行时间花费在_platform_memmove$VARIANT$Haswell.

在汇编输出中,上面的函数被调用DYLD-STUB$$memcpy。然而,我没有memcpy在我的 C 代码中(我确实有一些malloc虽然)。

再深入一点,好像是汇编命令rep负责占用这么多时间。从this帖子,看来rep没有做任何有用的事情。为什么编译器要插入它?以及在哪里memcpy是从哪里来的?

我也尝试编译-g, 但是之后_platform_memmove$VARIANT$Haswell不再几乎所有时间都狼吞虎咽了。


经过更多搜索后,我发现了问题:我将一个结构传递给一个函数,该函数每次都会被复制,因此memcpy.

我更改了该函数以接受指向该结构的指针,这将我的代码速度提高了 5 倍。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 程序 77% 的时间都花在 _platform_memmove$VARIANT$Haswell 中 [已关闭] 的相关文章

  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 按成员序列化

    我已经实现了template
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 核心数据 iCloud 同步中的关系完整性和验证

    考虑以下简单的实体模型 实体 A 与实体 B 具有一对一关系 称为b 实体 B 具有逆对一关系 称为a 这两种关系都不是可选的 A B b lt gt a 假设我们有两个设备 1 和 2 开始完全同步 每个对象都有一个 A 类对象和一个 B
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 重载<<的返回值

    include
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定

随机推荐

  • 我可以在oracle中从月到日更改范围间隔分区吗

    我有一个表 其分区如下并具有数百万行数据 表大小为 120 GB PARTITION BY RANGE Read time INTERVAL NUMTOYMINTERVAL 1 MONTH 现在我想用现有数据和未来数据更改为这种分区策略 表
  • 使用 JMS 发送消息在退出时挂起

    我正在尝试创建一个 Java 应用程序客户端项目 该项目将 JMS 消息发送到 Glassfish 服务器上的队列 问题是应用程序发送消息后 它在应该退出时挂起 消息传输成功 但由于某种原因应用程序没有退出 我尝试过调试该应用程序 并且可以
  • 当使用 get-content 回显到屏幕时,如何使 powershell 能够解释 ansi 颜色代码?

    我有一个日志文件 其中包含各种文本周围的 ansi 颜色代码 我使用 powershell 语言命令将其回显到控制台 get content logfile log wait 这样我就可以看到最新的日志更改 但是 所有 ansi 颜色代码都
  • 从 WooCommerce 中的所有优惠券中排除产品

    我在互联网上进行了搜索 但尽管有无数人问这个问题 但似乎没有任何答案 有什么办法可以从所有优惠券中排除特定产品吗 我知道你可以在优惠券级别上做到这一点 但这相当混乱 特别是因为很多人都有自动优惠券 几个人创建优惠券等 TLDR 任何使产品排
  • 制作一个位于内容区域之外的 div,但在浏览器窗口缩小时不会导致水平滚动条出现

    假设您有一个网站 其正文背景颜色为红色 内容区域为白色背景 宽度为 1 000 像素 现在 假设您希望内容区域上有一个投影 该投影在内容区域和红色背景的交界处最暗 并且当它从左侧离开左侧和从右侧离开右侧时变得不那么不透明 它基本上看起来像这
  • 未捕获的异常“Swift_TransportException”,消息为“无法与主机 smtp.gmail.com 建立连接 [连接超时 #110]”

    我已经在谷歌中搜索过它并尝试了这里的所有建议堆栈溢出但我仍然得到致命错误 我在用SwiftMailer用于发送和email to GMAIL 它在我的本地主机上完美运行 但是当我上传它并尝试时它给了我一个致命错误 这是我的代码的一部分 re
  • 如何给请求设置Tag并从Response Volley异步请求中获取?

    我有一个带有多个 REST Api 的 Android 应用程序 API 使用 Volley 库进行管理 响应正在得到 并且运行良好 但是当我发出异步请求时 我无法识别每个请求的响应 我的请求方法是这样的 private void http
  • 调整输入文本区域的大小

    我想创建一个自动增长的文本区域 所以我使用this指导 它运行良好 但有一个小问题 当您插入大文本并删除它们时 文本区域的大小超出了应有的大小 每插入一个字符 大小就会减少 1 2 像素 因此插入几个字符后 高度就会再次恢复正常 要重新创建
  • 什么是连续内存块?

    就像标题一样 什么是连续内存块 这是一个由 5 个字节组成的连续内存块 从位置 1 到位置 5 它表示内存中在一起的字节 浅蓝色 它们之间没有间隙字节 白色 这是一组不连续的感兴趣的五个字节 它被分成三组字节 黄色 在位置 4 和 6 处有
  • 回发后下拉不保留所选值

    我正在使用经典的 asp 我有一个下拉列表 用户可以选择然后按提交 他们按下提交后 下拉列表将返回默认值 而不是他们选择的值 无论如何 是否可以在回发之间保持下拉状态 而不是返回默认状态 如果需要可以发布代码示例 谢谢 您必须根据用户发布的
  • 重定向在 unix 内部是如何工作的

    让我们举个例子 我有一个名为 a out 的可执行文件 它包含将一些文本打印到 printf 的 STDOUT cos 的二进制信息 所以当我给出 a out 时 我在控制台 STDOUT 上看到 printf 的输出 假设我在控制台中执行
  • KeyguardManager FLAG_DISMISS_KEYGUARD 服务

    当屏幕打开时 我想检查电源按钮是否激活了它 如果是 它将自动关闭键盘保护并运行吐司 当屏幕关闭时 键盘保护将重新启用 代码到这里为止都有效 但是 当屏幕关闭时 我按下 音量调高 按钮 屏幕就会打开 但它进入检测到 电源 按钮被按下的循环 这
  • ORA-00911: 无效字符 Toad

    我用的是蟾蜍11 5 当我运行多个 truncate 语句时 它给出一个错误ORA 00911 无效字符 truncate table employees truncate table employees edit history trun
  • 如何在 IIS7 中设置应用程序的默认页面?

    我将 Web 应用程序部署到 IIS7 一切正常 但是 我希望它自动转到 www xxxxxx com views root default aspx 而不是输入真正的起始页的 url 我该怎么做呢 只需转到 web config 文件并添
  • 允许 python 子进程的多个输入

    我有一个与几年前提出的问题几乎相同的问题 有两个输入的 Python 子进程收到了一个答案但没有实施 我希望这份报告可以帮助我和其他人澄清问题 如上所述 我想使用 subprocess 来包装一个需要多个输入的命令行工具 特别是 我想避免将
  • sizeof() 如何通过引用参数传递

    我将一个数组传递给函数并尝试查找该数组的长度 但结果却出乎意料 有人可以解释一下吗 int main int array 10 0 func array return 0 void func int arr printf length of
  • 使用 Vue.js 在 .then 函数中输入错误

    我有一个获取请求来检测用户是否是管理员 我的问题是我想使用显示一个按钮v if检查它是真是假 默认情况下该值设置为false Data 然后我们得到了按钮 And the then in beforeCreate 你需要使用一个箭头函数以保
  • Go 中的 int 字符串? [复制]

    这个问题在这里已经有答案了 我真的认为这会很简单 string myInt 看来不是 我正在编写一个函数 它接受一个整数切片 并将每个整数附加到一个字符串中 并在每个整数之间添加一个分隔符 这是我的代码 func xis Int16Slic
  • 为什么栈是有界的?

    在我使用过的任何平台上 堆栈大小始终是有限的 您必须在某个时刻 在程序启动之前 指定最大堆栈大小 并且它是预先分配的 为什么堆栈不能是驻留在堆内存中的链表 那么它几乎是无限的 它是当今所有计算机体系结构的固有属性吗 我的问题与任何特定的编程
  • C 程序 77% 的时间都花在 _platform_memmove$VARIANT$Haswell 中 [已关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我正在分析一些用 C 编写的数字代码 分析器是 Instruments 编译器是clang在 Mac OSX 10 11 6 上 多达 77 3 的运行时间花费在 platform mem