9得票1回答
什么可以解释将引用写入堆位置的巨大性能损失?

在研究分代垃圾回收器对应用程序性能的微妙影响时,我发现在写入基本操作 - 写入堆位置 - 时与写入原语或引用有关,性能存在惊人的差异。 微基准测试 @OutputTimeUnit(TimeUnit.NANOSECONDS) @BenchmarkMode(Mode.AverageTime) ...

51得票4回答
在C++中获取准确的执行时间(微秒级)

我想要获取由C++编写的程序准确的微秒级别的执行时间。我尝试使用clock_t来获取执行时间,但是它不够准确。(请注意,微基准测试很困难。准确的计时器只是获得短时间区间的有意义结果所必需的一小部分。参见“性能评估的成语方式?”以了解更一般的注意事项)

13得票2回答
在amd64上使用SIMD时,何时更好地使用更多指令而不是从内存中加载?

我有一些高性能代码。使用SSEn和AVX的SIMD实现需要约30条指令,而使用4096字节查找表的版本只需要约8条指令。在微基准测试中,查找表快了40%。如果我进行缓存无效化测试,每100次迭代,它们看起来差不多。在我的实际程序中,似乎非加载版本更快,但很难得到可靠的测量结果,而我的测量结果两...

10得票2回答
意外结果:微基准测试

我一直对使用system.time和rbenchmark进行基准测试时看到的精度不足感到有些困扰。最近,我看到Hadley提到了microbenchmark包。因此,我决定尝试一下,如下所示。我将mean与f < function(x) {sum(x)/length(x)}相比较,并预计...

7得票2回答
使用命令行参数进行Google基准测试。编写自己的主函数?

我有一段类似这样的代码: ... void benchMark(benchmark::State& state){ maxCapacity = state.range(0); // set up some stuff for (auto _ : state){...

22得票13回答
Java for循环性能问题

考虑以下示例:public static void main(final String[] args) { final List<String> myList = Arrays.asList("A", "B", "C", "D"); final long start...

14得票1回答
直接字节缓冲区的相对读取性能与绝对读取性能比较

在测试直接使用java.nio.ByteBuffer的读取性能时,我发现绝对读取的速度平均比相对读取快2倍。同时,如果我比较相对读取和绝对读取的源代码,这两者的代码基本相同,唯一的区别在于相对读取维护了一个内部计数器。我想知道为什么会出现如此明显的速度差异? 以下是我的JMH基准测试的源代码...

7得票1回答
如何使用jmh测量分配率?

JMH似乎在大多数卡钳功能方面都比caliper做得更好,但我无法弄清如何测量分配速率,这通常对于在微基准测试中查看非常有用。JMH是测量分配速率的错误工具吗?

8得票2回答
Groovy:使用for..in循环是否比.each方法更快?

我很好奇在性能方面是否应该优先使用for..in而不是.each。

8得票4回答
最快的Linux系统调用

在支持syscall和sysret的x86-64英特尔系统上,从64位用户代码到原始内核的最快系统调用是什么? 具体而言,它必须是一种通过syscall/sysret用户内核转换来实现的系统调用1,但除此之外不需要做太多的工作。它甚至不需要自己执行系统调用:只要出现某种早期错误,就可以避免在...