标签: micro-optimization

这两个Java段的性能有何不同?

我很想知道这两个Java方法调用中的任何一个在处理器时间,内存分配和/或垃圾收集方面是否会表现得完全不同.

SomeObject myObj = new SomeObject();
myObj.doSomething();
Run Code Online (Sandbox Code Playgroud)

new SomeObject().doSomething();
Run Code Online (Sandbox Code Playgroud)

java micro-optimization

2
推荐指数
1
解决办法
177
查看次数

PHP微优化

我怎样才能发现无用的微优化技术?

应该避免什么?

php micro-optimization

2
推荐指数
1
解决办法
373
查看次数

当php手册说前者在内部使用后者时,为什么gmmktime()比mktime()更快?

根据PHP手册中的gmmktime()描述,它在内部使用mktime().然而,当我运行以下代码时,mktime循环运行时间不到9秒,而gmmktime外观只需不到2秒.怎么会这样?

<?php
$count = 1000000;

$startTime = microtime(true);
for ($i = 0; $i < $count; $i++)
{
  mktime();
}
$endTime = microtime(true);
printf("mktime: %.4f seconds\n", $endTime - $startTime);


$startTime = microtime(true);
for ($i = 0; $i < $count; $i++)
{
  gmmktime();
}
$endTime = microtime(true);
printf("gmmktime: %.4f seconds\n", $endTime - $startTime);
Run Code Online (Sandbox Code Playgroud)

输出:

mktime: 8.6714 seconds
gmmktime: 1.6906 seconds
Run Code Online (Sandbox Code Playgroud)

php performance micro-optimization

2
推荐指数
1
解决办法
1162
查看次数

在for循环中调用.length()比在循环之前调用慢吗?

在Java代码中,我认为:

for (int i = 0; i < s.length(); i++) {
    // do a lot of something
}
Run Code Online (Sandbox Code Playgroud)

比这慢:

int length = s.length();
for (int i = 0; i < length; i++) {
    // do a lot of something
}
Run Code Online (Sandbox Code Playgroud)

请告诉我,我是否正确.

java optimization for-loop micro-optimization

2
推荐指数
1
解决办法
114
查看次数

在x86汇编中将单个存储单元设置为零或常量的最快方法?

在x86中将单个存储单元设置为零的最快方法是什么?通常,我这样做的方式是这样的:

C745D800000000  MOV [ebp-28], 0
Run Code Online (Sandbox Code Playgroud)

如您所见,由于它使用所有4个字节作为常量,因此它具有相当大的块编码。使用普通寄存器,我可以使用MVZE更紧凑的寄存器,但MVZE不能用于内存。

我在想也许先清除一个寄存器,然后MOV将寄存器的值存入内存。这样,它将是两条指令,但是总共只有5个字节,而不是上面的一个7字节指令。遵循“如果更短,通常更快”的规则,这可能是更可取的。

x86 assembly x86-64 zero micro-optimization

2
推荐指数
1
解决办法
2412
查看次数

如果只从一个地方调用一个函数,那么内联它是否总是更好?

如果一个函数只在一个地方使用,而某些分析表明它没有被内联,那么在强制编译器内联它时总会有性能优势吗?

显然是"轮廓和看"(在有问题的功能的情况下,它确实证明是一个小的性能提升).我大多数时候都是出于好奇而问 - 有一个相当聪明的编译器,这有什么性能上的缺点吗?

c c++ optimization performance micro-optimization

2
推荐指数
1
解决办法
599
查看次数

对于memcmp,SSE4.2字符串指令比SSE2快多少?

这是我的代码汇编程序

你能用c ++嵌入它并检查SSE4吗?速度快

我非常希望看到如何进入SSE4的发展.或者根本不担心他?我们检查一下(我没有SSSE3以上的支持)

{ sse2 strcmp WideChar 32 bit }
function CmpSee2(const P1, P2: Pointer; len: Integer): Boolean;
asm
    push ebx           // Create ebx
    cmp EAX, EDX      // Str = Str2
    je @@true        // to exit true
    test eax, eax   // not Str
    je @@false     // to exit false
    test edx, edx // not Str2
    je @@false   // to exit false
    sub edx, eax              // Str2 := Str2 - Str;
    mov ebx, [eax]           // get Str 4 byte
    xor …
Run Code Online (Sandbox Code Playgroud)

x86 assembly sse micro-optimization sse4

2
推荐指数
1
解决办法
1374
查看次数

x86汇编pushad/popad,它的速度有多快?

我只是试图在x86汇编中进行非常快速的基于计算的程序,但我需要在调用程序之前推送累加器,计数器和数据寄存器.手动推动它们的速度更快:

push eax
push ecx
push edx
Run Code Online (Sandbox Code Playgroud)

或者只是使用,

pushad
Run Code Online (Sandbox Code Playgroud)

与弹出一样.谢谢

performance x86 assembly inline-assembly micro-optimization

2
推荐指数
1
解决办法
1193
查看次数

AVX 512与AVX2的性能,适用于简单的阵列处理循环

我目前正在进行一些优化并比较DSP应用的矢量化可能性,这似乎是AVX512的理想选择,因为它们只是简单的不相关的阵列处理循环.但是在新的i9上,与AVX2相比,使用AVX512时没有任何合理的改进.有什么指针吗?有什么好结果吗?(顺便说一句.我试过MSVC/CLANG/ICL,没有明显的区别,很多时候AVX512代码实际上看起来比较慢)

performance x86 micro-optimization avx2 avx512

2
推荐指数
2
解决办法
4409
查看次数

CLMUL是恒定时间吗?

进位乘法指令是否在恒定时间内运行?换句话说,是独立于其参数执行所需的时间吗?

x86 assembly micro-optimization galois-field

2
推荐指数
1
解决办法
163
查看次数