micro-optimization 相关问题

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

““缓存”一个字符串:为什么无效?

我尝试了一下测试:import timeit a =“ hi” def f():返回“ hi” def g():返回timeit.timeit(“ f()”,globals = {“ f”:f} ,number = 100000000)#6.028764325194061 timeit.timeit(“ g()”,...

回答 1 投票 0

如何将MIPS ADD 1 / SLT / BNE简化为更少的指令?

如何将这些MIPS指令减少为更少的指令? addi $ 8,$ 3,1 slt $ 9,$ 2,$ 80 bne $ 9,$ 0,End

回答 1 投票 1

使用OpenMP在一个巨大的数组上微优化线性搜索循环:一击必破

我有一个循环大约需要90%到99%的编程时间。它读取一个巨大的LUT,并且该循环执行了100,000次以上,因此值得进行一些优化。编辑:LUT(...

回答 2 投票 1

编译器在这里所 做的事情允许通过很少的实际比较就可以完成许多值的比较?

我的问题是,在这种情况下,编译器在做什么,这比我认为的可能更多地优化了代码方式。有一个枚举:枚举MyEnum {Entry1,... Entry29} ...

回答 1 投票 0

设置和清除x86的零标志

什么是设置的最有效的方式,也对X86-64清除零标志(ZF)?这无需与已知值的寄存器的工作方法,或没有任何自由寄存器的都是...

回答 2 投票 3

一个指令以清除PF(奇偶标志) - 获得在结果寄存器奇数位的

在x86汇编,是否有可能以清除在一个奇偶标志和只有一个指令,在任何初始寄存器配置工作?这相当于创建了一个具有结果寄存器...

回答 3 投票 3

设置单个存储器单元到零或在x86汇编恒定最快方式是什么?

什么是设置一个单一的存储单元中的x86零最快的方法是什么?通常我做的方式是这样的:C745D800000000 MOV [EBP-28],0正如你可以看到这个有着相当厚实的编码,因为它是...

回答 2 投票 2

x86汇编PUSHAD / POPAD,如何快速它是什么?

我只是想在x86汇编,使基于非常快的计算程序,但我需要调用过程之前推累加器,计数器和数据寄存器。更快手动把他们:推...

回答 1 投票 2

它是更有效的接触较少的寄存器在ARM汇编?

我刚刚通过Raspbian开始学习大会,并有一个简单的问题:如何有效地在大会保存寄存器空间?例如,如果我想要做一个快速的增加,有没有意义?

回答 3 投票 1

函数所需的堆栈空间是否会影响C / C ++中的内联决策?

函数需要大量的堆栈空间是否会阻止它内联?例如,如果我在堆栈上有一个10k自动缓冲区,是否会使该函数不太可能被内联? ...

回答 3 投票 6

在子矩阵中找到行方向最大值的最快方法

在一个性能关键的代码中,我得到了2个大型矩阵(数千个大小)的期望,相同大小但包含不同值的实现。这些矩阵都是分区的......

回答 1 投票 1

x86的MOV真的可以“免费”吗?为什么我不能重现这个呢?

我一直看到人们声称MOV指令可以在x86中免费,因为寄存器重命名。对于我的生活,我无法在一个测试用例中验证这一点。每个测试用例我尝试debunks ...

回答 2 投票 19

`__uint128_t`上效率最高的popcount?

我需要以最有效(最快)的方式使用128位大小的无符号变量。 OS:Linux / Debian 9编译器:GCC 8 CPU:Intel i7-5775C虽然解决方案更多......

回答 1 投票 6

将两个DWORD打包成QWORD以节省存储带宽

想象一下像下面这样的加载存储循环,它从非连续位置加载DWORD并连续存储它们:top:mov eax,DWORD [rsi] mov DWORD [rdi],eax mov eax,DWORD [rdx] mov ...

回答 1 投票 3

优化二进制搜索算法

在二分搜索中,我们有两个比较,一个用于大于,另一个用于小于,否则是中间值。您将如何优化以便我们只需要检查一次? bool binSearch(int ...

回答 12 投票 4

编译器在eax上来回生成一个mov

int test1(int a,int b){if(__ builtin_expect(a <b,0))返回a / b;返回b; }是由clang编译的-O3 -march = native to test1(int,int):#@ ...

回答 2 投票 5

C#基本操作时间如何随数字大小而变化?

这是一个函数,每帧需要运行一次,因此在性能方面非常关键。该函数包含一个循环及其中的操作。私人国际...

回答 2 投票 -1

大多数编译器是否优化了MATMUL(TRANSPOSE(A),B)?

在Fortran程序中,我需要计算几个表达式,如M·v,MT·v,MT·M,M·MT等......这里,M和v是2D和1D小尺寸的数组(小于100, ...

回答 1 投票 5

条件函数调用而不使用其他跳转?

我想根据寄存器的内容调用一个过程。该过程完成后,它应该返回到调用地址,以便程序可以继续执行以下代码...

回答 2 投票 0

如果性能很重要,我应该使用Java的String.format()吗?

我们必须一直为日志输出构建字符串等等。在JDK版本中,我们学会了何时使用StringBuffer(许多追加,线程安全)和StringBuilder(许多追加,非线程-...

回答 13 投票 197

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