22得票1回答
为什么字符串连接比String.valueOf在将整数转换为字符串时更快?

我有一个基准:@BenchmarkMode(Mode.Throughput) @Fork(1) @State(Scope.Thread) @Warmup(iterations = 10, time = 1, timeUnit = TimeUnit.SECONDS, batchSize = 10...

8得票1回答
JMH - 我为什么需要 Blackhole.consumeCPU()?

我正在尝试理解为什么使用Blackhole.consumeCPU()是明智的? 我在Google上找到了一些关于Blackhole.consumeCPU()的信息 有时候,当我们在多个线程上运行基准测试时,我们还想烧掉一些CPU周期来模拟运行我们的代码时的CPU业务。这不能是Thread...

10得票6回答
如何最小化分配和初始化NSDateFormatter的成本?

我注意到使用NSDateFormatter可能会很昂贵。我发现分配和初始化对象已经消耗了很多时间。 此外,似乎在多个线程中使用NSDateFormatter会增加成本。是否存在一个阻塞,使得线程必须等待彼此? 我创建了一个小的测试应用程序来说明这个问题。请查看它。 http://gith...

8得票1回答
JMH中的分配率是什么意思?

我想要测量运行基准测试时所消耗的内存。我在网上发现可以使用 GC 分析器来进行测量。我已经尝试了,但我不理解结果,也看不到所消耗的内存量。能否有人解释一下结果?谢谢。 MyBenchmark.testMethod_width_2_attribute_text ...

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

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

9得票3回答
"STREAM内存带宽基准测试"真正衡量的是什么?

我有几个关于 STREAM 基准测试(http://www.cs.virginia.edu/stream/ref.html#runrules)的问题。 下面是 stream.c 中的注释。为什么要求数组的大小应该是缓存大小的四倍? * (a) Each array must...

8得票1回答
清空英特尔Core 2 Duo的指令流水线?

我正在为一些C语言中非常短的操作编写微基准测试代码。例如,我正在测量调用空函数所需的周期数,具体取决于传递的参数数量。 目前,我使用RDTSC指令在每个操作之前和之后计时,以获取CPU的周期计数。然而,我担心在第一个RDTSC之前发出的指令可能会减慢我正在测量的实际指令。我还担心在第二个RD...

23得票1回答
谷歌微基准测试CPU缩放警告

当我运行谷歌基准测试时,我会收到一个警告,说CPU缩放已启用。这是一个可以通过标志在构建时或通过参数在运行时切换的功能,还是一个系统设置?

11得票11回答
第一次运行Java循环为什么会很慢?[Sun HotSpot 1.5,sparc]

在对 Solaris SPARC 上的一些 Java 代码进行基准测试时,我注意到第一次调用基准测试的函数速度非常慢(差了 10 倍): 第一次 | 1 | 25295.979 毫秒 第二次 | 1 | 2256.990 毫秒 第三次 | 1 | 2250.575 毫秒 为什么会这样?我怀...

434得票6回答
为什么在Java中,(a*b != 0)比(a != 0 && b != 0)更快?

我正在编写一些Java代码,在某个时刻,程序的流程取决于两个int变量“a”和“b”是否为非零(注意:a和b永远不会是负数,并且永远不会超出整数溢出范围)。 我可以使用以下方式进行评估 if (a != 0 && b != 0) { /* Some code */ } ...