标签: benchmarking

为什么对同一方法的两次连续调用会产生不同的执行时间?

这是一个示例代码:

public class TestIO{
public static void main(String[] str){
    TestIO t = new TestIO();
    t.fOne();
    t.fTwo();
    t.fOne();
    t.fTwo();
}


public void fOne(){
    long t1, t2;
    t1 = System.nanoTime();
    int i = 10;
    int j = 10;
    int k = j*i;
    System.out.println(k);
    t2 = System.nanoTime();
    System.out.println("Time taken by 'fOne' ... " + (t2-t1));
}

public void fTwo(){
    long t1, t2;
    t1 = System.nanoTime();
    int i = 10;
    int j = 10;
    int k = j*i;
    System.out.println(k);
    t2 = System.nanoTime();
    System.out.println("Time taken …
Run Code Online (Sandbox Code Playgroud)

java benchmarking microbenchmark

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

对SSE指令进行基准测试

我正在对一些SSE代码(将4个浮点数乘以4个浮点数)与传统的C代码进行基准测试.我认为我的基准代码在某种程度上必须是错误的,因为它似乎说非SSE代码比SSE快2-3倍.

有人能告诉我下面的基准测试代码有什么问题吗?并且可能建议另一种方法准确地显示SSE和非SSE代码的速度.

#include <time.h>
#include <string.h>
#include <stdio.h>

#define ITERATIONS 100000

#define MULT_FLOAT4(X, Y) ({ \
asm volatile ( \
    "movaps (%0), %%xmm0\n\t" \
    "mulps (%1), %%xmm0\n\t" \
    "movaps %%xmm0, (%1)" \
    :: "r" (X), "r" (Y)); })

int main(void)
{
    int i, j;
    float a[4] __attribute__((aligned(16))) = { 10, 20, 30, 40 };
    time_t timer, sse_time, std_time;

    timer = time(NULL);
    for(j = 0; j < 5000; ++j)
        for(i = 0; i < ITERATIONS; ++i) {
            float b[4] …
Run Code Online (Sandbox Code Playgroud)

benchmarking assembly gcc sse

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

任何ASP.Net基准测试工具?

我想在服务器中运行时测量.Net应用程序的性能,尤其是ASP.Net中的Web应用程序.

我需要知道任何基准工具使我知道我的源代码可以优化.只要基准工具可以帮助我优化网站的性能.

有关获得仅测量.Net的基准工具的建议吗?请列出商业和免费应用程序或任何开源基准测试工具.

.net asp.net benchmarking open-source

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

OCaml MicroBenchmark

我正在尝试将c与ocaml进行基本的微基准比较.我听说对于斐波纳契程序,c和ocaml大致相同,但我无法复制这些结果.我用gcc -O3 fib.c -o c-code编译c代码,并用ocamlopt -o ocaml-code fibo.ml编译OCaml代码.我通过使用时间./c-code和时间./ocaml-code计时.每次我这样做OCaml需要0.10秒,而c代码每次约为0.03秒.除了这是一个天真的基准,有没有办法让ocaml更快?谁能看到他们电脑上的时代是什么?

C

#include <stdio.h>

int fibonacci(int n)
{
    return n<3 ? 1 : fibonacci(n-1) + fibonacci(n-2);
}

int main(void)
{
    printf("%d", fibonacci(34));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

OCaml的

let rec fibonacci n = if n < 3 then 1 else fibonacci(n-1) + fibonacci(n-2);;
print_int(fibonacci 34);;
Run Code Online (Sandbox Code Playgroud)

c benchmarking ocaml

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

TTFB - 跟踪php函数的运行时间

我需要跟踪php函数运行时间以找到Time to First Byte问题?

php debugging benchmarking

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

"大约一小时前"PHP/SQL中的逻辑以及它如何影响性能?

最近我一直在面对"X小时前","X天前"功能的网站.(包括stackoverflow)

就像,Anil在一个小时前玩了一场比赛.两天前Anil平了.Anil刚才发表了这条评论.

我知道可以通过一个小函数轻松完成,该函数计算到当前时间的旧时间,以秒(或毫秒)获得差异并相应地返回字符串值.

我想问的是;

  1. 如何以最专业的方式完成?使用PHP计算时间差或在查询时根据我们的SQL计算它?
  2. 它不会降低性能吗?想象一个包含100条注释的页面,该功能将工作100次,因此页面加载速度会变慢.

PS.我不是在寻找脚本.

php mysql sql security benchmarking

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

可编写脚本的HTTP基准测试(最好用Python编写)

我正在寻找一种压力测试Web应用程序的好方法.基本上我正在使用可编写脚本的界面搜索类似于ab的内容.理想情况下,我想定义一些任务,模拟webapp上的不同操作(注册帐户,登录,搜索等),该工具运行一堆执行这些任务*的进程.结果我想要"平均请求时间","最慢请求(每个uri)"等等.

*:要从客户端带中独立,我将从一些EC2实例运行这些测试,所以在一个完美的世界中,该工具已经支持这个 - 否则我将脚本使用boto.

python benchmarking web-applications stress-testing performance-testing

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

JMH:不考虑内部方法时间

我有:像这样的方法:

@GenerateMicroBenchmark
public static void calculateArraySummary(String[] args) {
    // create a random data set
    /* PROBLEM HERE: 
     * now I measure not only pool.invoke(finder) time,
     * but also generateRandomArray method time
     */
    final int[] array = generateRandomArray(1000000); 

    // submit the task to the pool
    final ForkJoinPool pool = new ForkJoinPool(4);
    final ArraySummator finder = new ArraySummator(array);
    System.out.println(pool.invoke(finder));
}

private static int[] generateRandomArray(int length) {
    final int[] array = new int[1000000];
    final Random random = new Random();
    for (int i …
Run Code Online (Sandbox Code Playgroud)

java benchmarking microbenchmark jmh

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

Redis-cluster基准测试

什么是对redis-cluster进行基准测试的正确方法(最近在3.0 RC中发布).AFAIK,redis-benchmark实用程序仅访问群集的一个节点.

编辑:(详细信息)我没有任何群集的单个redis实例提供了~90 k设置/获取操作的吞吐量,但群集设置失败了很长时间.

设置1:8核心机器运行3个主站+ 3个从站的集群(全部在同一台机器上)我还在同一台机器上运行3个基准测试实用程序.每个主节点的吞吐量降至25 k.

这让我觉得我可能会为我的机器上的核心数量运行太多的进程.

设置2:我更新设置以拥有3个主设备和0个从设备.有趣的是,这也无济于事,每台机器的吞吐量仍为25 k

我正在运行的基准测试命令是:redis-benchmark-7000 -n 10000000 -t set,get

在这方面的任何帮助将不胜感激.

benchmarking cluster-computing redis

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

为什么函数运行速度越快我调用的越多?

我试图在尝试优化函数之前尝试执行函数.(代码是Elixir,但我正在使用Erlang :timer.tc.)

我的一般方法是"多次运行,然后计算平均持续时间." 但是,当我运行它时,平均值会急剧下降(达到一定程度).

一个例子:

some_func = fn ->
  # not my actual function; it's a pure function,
  # but exhibits the same speedup
  :rand.uniform() 
end

run_n_times = fn (count, func) ->
  Enum.each(1..count, fn (_i) ->
    func.()
  end)
end

n = 20

{microseconds, :ok} = :timer.tc(run_n_times, [n, some_func])
IO.puts "#{microseconds / n} microseconds per call (#{microseconds} total for #{n} calls)"
Run Code Online (Sandbox Code Playgroud)

增加值的输出n是这样的(轻度格式化):

174.8       microseconds per call (3496    total for 20      calls )
21.505      microseconds per call …
Run Code Online (Sandbox Code Playgroud)

benchmarking elixir

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