micro-optimization 相关问题

微优化是对小部分代码进行细致调整的过程,以解决其操作的某些方面(内存使用过多,性能不佳等)的感知缺陷。

x86-64 指令与直到零?

我知道有一条指令会重复(比如repnz)。我有一个情况,我有一个(8 位)数组,它是 [7, 2, 3, 4, ..., 7, 0, 0, 0 ...](我最后有 64 个字节的零)。我想要...

回答 0 投票 0

我怎么能为这个函数做循环展开? [关闭]

我正在尝试使用并行累加器进行循环展开,但我对依赖项和计算感到困惑。 result 和 result2 理想情况下应该相互独立运行,以便 ...

回答 0 投票 0

不确定AMD Zen 3架构(功能单元、指令发布时间/延迟)

我正在尝试查找有关 AMD 处理器 zen 3 架构的整数和浮点功能单元的信息。以及整数和fl的发布时间和延迟...

回答 0 投票 0

优化嵌套循环的模式填充数组,帮助编译器产生高效的ARM汇编?

我刚刚接到一项任务,要求重写以下C函数,以帮助ARM编译器生成更高效的汇编代码。有谁知道怎么做? void some_function(int *data)...。

回答 1 投票 1

优化线性序列的总和=n * (n+1)2 - 有什么比lea imul shrd更快的吗?

这是我的汇编代码用于计算的总RAX = 1 + 2 + 3 + ......。+ rdi使用高斯方法rax =(rdi + 1)*rdi 2.你们有什么想法或知道英特尔指令,进一步......

回答 1 投票 0

为什么turbofan会剥离小循环?

当编译一个循环时,turbofan似乎在大多数时候都会剥离第一个循环迭代。例如一个循环,比如: function fill256(int32Array) { var i = 255; do { int32Array[i] = 0; } while(...)

回答 1 投票 1

英特尔JCC Erratum--JCC真的应该单独处理吗?

英特尔推送了微代码更新,以修复名为 "跳转条件代码(JCC)Erratum "的错误。更新后的微代码由于禁用了将代码放到ICache下,导致一些操作效率低下。

回答 1 投票 1

对于mutex获取-交换循环(或队列获取-加载循环),是否应该结合内存栅栏,还是应该避免?

假设一个重复的获取操作,尝试加载或交换一个值,直到观察到的值是期望值。让我们以cppreference原子标志的例子为出发点: void f(int ....

回答 1 投票 1

在x86上实现std::atomic_thread_fence(std::memory_order_seq_cst),而不会产生额外的性能惩罚。

一个后续问题,为什么这个`std::atomic_thread_fence`能用,作为一个虚拟的联锁操作比_mm_mfence要好,而且实现的方法也不少,哪个联锁 ...

回答 1 投票 1

交换内存中未对齐的64位值的字节的最快方法是什么?

我在内存中有大量的64位值。不幸的是,它们可能未与64位地址对齐。我的目标是更改所有这些值的字节序,即交换/反转它们的值...

回答 1 投票 3

如何指示MS Visual C ++编译器使用未初始化的__m512i寄存器

如何指示Visual C ++编译器(1926)使用未初始化的__m512i寄存器。在以下代码段中,计算出not(or(A,B)),哑元的内容无关紧要。 __m512i虚拟; ...

回答 1 投票 3

将SSE与AVX128混合以使用较短的指令?

根据我收集到的所有信息,将SSE和128位(E)VEX编码的指令混合使用不会对性能造成任何影响。这表明可以将两者混合使用。这可能是...

回答 1 投票 1

Java finals是否有助于编译器创建更有效的字节码? [重复]

可能重复:在Java中使用final关键字是否可以提高性能?根据您将final修饰符应用于什么,它在java中会有不同的结果。我想知道的是...

回答 4 投票 45

比较不带多cmp的5-BYTE并使用测试

我打包了'HELLO WO',结果是一个8-BYTE整数(5717073776924706120),这些位是:0100111101010111001000000100111101001100010011000100010101001000现在我要检查是否前5个...

回答 1 投票 0

如何确定x86-64程序集中是否输入了一个16字节对齐地址的循环?

我是x86-64的初学者,尤其是在性能优化方面,我试图做得更好。我已经阅读了agner优化手册第2卷的各个部分。它是...

回答 1 投票 2

用substr前缀到字符串是否更快?

我刚刚找到了以substr($ str,0,0,$ prepend)开头的代码,我的$ foo =“ world!” substr($ foo,0,0,“你好”);这比我的$ foo =“ world!”还快吗? $ foo =“ Hello $ foo”;

回答 1 投票 0

用substr前缀到字符串是否更快?

我刚刚找到了以substr($ str,0,0,$ prepend)开头的代码,我的$ foo =“ world!” substr($ foo,0,0,“你好”);这比我的$ foo =“ world!”还快吗? $ foo =“ Hello $ foo”;

回答 1 投票 0

线性序列的总和= n *(n + 1)/ 2-比lea / imul / shrd好吗?

这是我的汇编代码,用于使用高斯方法rax =(rdi + 1)* rdi / 2来计算rax = 1 + 2 + 3 + .... + rdi。知道进一步的intel指令...

回答 1 投票 0

优化嵌套循环以填充阵列,以帮助编译器产生有效的ARM汇编?

我刚刚获得了重新编写以下C函数的任务,以帮助ARM编译器生成更有效的汇编代码。有谁知道如何做到这一点? void some_function(int * data)...

回答 2 投票 2

repz ret:为什么所有麻烦?

repz ret的问题已在此处[1]以及其他来源[2,3]中很好地涵盖了。但是,我没有阅读这些资料,却找到了以下答案:...

回答 1 投票 4

© www.soinside.com 2019 - 2024. All rights reserved.