- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想预取一些代码到指令缓存中。代码路径不常使用,但我需要它在指令缓存中,或者至少在 L2 中,以用于极少数使用它的情况。我有一些关于这些罕见案例的预先通知。 _mm_prefetch 是否适用于代码?有没有办法在缓存中获取这个不常用的代码?对于这个问题,我不关心可移植性,所以即使是 asm 也可以。
最佳答案
答案取决于您的 CPU 架构。
也就是说,如果您使用的是 gcc 或 clang,则可以使用 __builtin_prefetch
指令尝试生成预取指令。在 Pentium 3 和更高版本的 x86 类型架构上,这将生成一个 PREFETCHh
指令,该指令请求加载到数据缓存层次结构中。由于这些架构具有统一的 L2 和更高级别的缓存,这可能会有所帮助。
函数如下所示:
__builtin_prefetch(const void *address, int locality);
locality
参数应在 0...3 范围内。假设 locality
直接映射到 PREFETCHh
指令的 h
部分,你想传递 1 或 2,这要求加载数据进入二级缓存和更高级别的缓存。参见 Intel® 64 and IA-32 Architectures Software Developer's ManualVolume 2B: Instruction Set Reference, M-Z (PDF)第 4-277 页。 ( Find other volumes here .)
如果您使用的是另一个没有 __builtin_prefetch
的编译器,请查看它是否有 _mm_prefetch
函数。您可能需要包含头文件才能获得该功能。例如,在 OS X 上,该函数和 locality
参数的常量在 xmmintrin.h
中声明。
关于c++ - 如何预取不常用的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16218757/
本文主要给大家介绍Mysql数据库分库和分表方式(常用),涉及到mysql数据库相关知识,对mysql数据库分库分表相关知识感兴趣的朋友一起学习吧 1 分库 1.1 按照功能分库 按照功能进行
在当前对象由其他包含对象操作的系统中,当传递对当前对象的引用时,链接似乎一直在继续......没有任何结束(对于下面的代码,Car ->myCurrentComponent->myCar_Brake-
我有一个密码 UIAlertView,我们要求用户提供。我需要根据情况在不同的 View 上询问它,从 downloadViewController (用户下载数据后),当他们切换到他们的数据时(如果
我正在尝试编写一个函数,使得对于任何整数 x 的 P(x) 都有一个包含三个元素的列表,即平方、立方和 n 的四次方,但我仍然不知道如何组合然后制作一个函数,例如我有平方、立方体和 4 次幂函数下面是
关闭。这个问题需要更多 focused .它目前不接受答案。 关闭4年前。 锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或交互。 我能否列出一份常见的
Python 常用 PEP8 编码规范 代码布局 缩进 每级缩进用4个空格。 括号中使用垂直隐式缩进或使用悬挂缩进。 EXAMPLE: ?
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 去年关闭。 Improve this questio
在经典 ui 中,您可以使用 xtype:cqinclude 包含来自不同路径的 rtePlugins,基本上为标准 RTE 插件创建一个位置,我如何在 Touch UI 中执行相同操作? 我尝试使用
在经典 ui 中,您可以使用 xtype:cqinclude 包含来自不同路径的 rtePlugins,基本上为标准 RTE 插件创建一个位置,我如何在 Touch UI 中执行相同操作? 我尝试使用
*strong text*我有多个网络应用程序使用了一些常见的依赖项,比如蒙戈连接器谷歌 Guava 乔达时间 我想到将它们从 webapp/WEB-INF/lib 中取出并放入一些 common-l
我正在编写一个 Web 服务器,我想知道哪些 HTTP 请求 header (由客户端发送)是最常见的,因此我应该重点实现。 目前,我只支持Accept 和Host。 最佳答案 不确定您的范围,但由于
我是一名优秀的程序员,十分优秀!