标签: benchmarking

使用Caliper时如何指定命令行?

我发现谷歌的微基准项目Caliper非常有趣,但文档仍然(除了一些例子)完全不存在.

我有两种不同的情况需要影响Jiper Caliper的命令行启动:

  1. 我需要设置一些固定的(理想情况下在几个固定值之间交替)-D参数
  2. 我需要指定一些固定的(理想情况下在几个固定值之间交替)JVM参数

我看到一些关于添加这样的功能的讨论,但我不能断定它是否已被添加,在这种情况下语法变成了什么?

一些示例或指向Java文档的指针(假设这在某处都有记录)等将非常感谢!

java benchmarking microbenchmark caliper

3
推荐指数
1
解决办法
1386
查看次数

如何在Eclipse中使用Java程序来使用多个处理内核?

我正在做一个关于如何在处理器中添加内核影响计算速度的科学公平项目.我编写了自己的基准测试,用Eclipse平台在Java中完成了这个.我的问题是,当程序运行时,计算机只使用1个处理核心所花费的时间与使用全部计算机所花费的时间之间的差别很小.有没有办法让我可以获得程序使用额外的处理核心,以便它在6个核心上运行得更快?这是代码的副本:

import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.util.Scanner;
import java.text.*;
public class SciFair 
{
/**
     * N. Roberts
     * 1/13/11
     * Science Fair 2011
     */
public static String now(String dateFormat) {
   Calendar cal = Calendar.getInstance();
   SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
   return sdf.format(cal.getTime());

 }

    public static void main(String[] args) 
    {

        Scanner dataIn = new Scanner(System.in);
        DecimalFormat timeInSeconds = new DecimalFormat("##.###");

        System.out.println("Are you ready to begin the benchmark? ");
        String response = dataIn.nextLine();
        double num = 5832544225416546445465465465465465448412168546725.2655236355335649499923164684654345649874181221173246189579162421579584572121334216957951462175918894199993642446445548521652158975;
        double endNum = 0;

        if(response.equals("Yes") || …
Run Code Online (Sandbox Code Playgroud)

java eclipse benchmarking

3
推荐指数
1
解决办法
1413
查看次数

定时行动

我正在使用一些操作解析文件,我想测量执行这些操作所需的时间.

什么是最好的方法来打印时间?

java benchmarking

3
推荐指数
1
解决办法
2022
查看次数

在浏览器中测量和基准测试javascript引擎的处理能力

什么是衡量v8或spidermonkey等javascript引擎性能的准确方法?它应该至少与一个评估和另一个评估没有很大的偏差,可能允许在不同操作系统和不同硬件配置上的不同javascript引擎之间进行排名.

我的第一次尝试是在一个没有任何内容的网页上,我在网页浏览器中加载了该页面.然后我尝试在Google Chrome的javascript控制台中执行此代码,结果非常不同,您将在结果中看到:

mean = function (distr) {
    var sum = 0;
    for (obs in distr) {
        sum += distr[obs];
    };
    return sum / distr.length;
};

stdev = function (distr,mean) {
    var diffsquares = 0;
    for (obs in distr) {
        diffsquares += Math.pow(distr[obs] - mean , 2);
    };
    return Math.sqrt((diffsquares / distr.length));
};


var OPs = 1000000;

var results = [];
for (var t = 0; t < 60; t++) {
    var start = (new Date()).getTime();
    for(var i = 0.5; …
Run Code Online (Sandbox Code Playgroud)

javascript firefox benchmarking google-chrome node.js

3
推荐指数
1
解决办法
998
查看次数

gettimeofday()C++不一致

我正在做一个涉及比较编程语言的项目.我在计算Ackermann函数.我测试了Java,Python和Ruby,并获得了10到30毫秒的响应.但C++似乎需要125毫秒.这是正常的,还是一个问题gettimeofday()Gettimeofday()是时候了.

我正在测试(虚拟)Ubuntu Natty Narwhal 32位.我不是短处理能力(四核2.13 GHz Intel Xeon).

我的代码在这里:

#include <iostream>
#include <sys/time.h>
using namespace std;
int a(int m,int n) {
    if (m == 0) {
    return n + 1;
    } else if (m > 0 and n == 0) {
    return a(m-1,1);
    } else if (m > 0 and n > 0) {
    return a(m-1,a(m,n-1));
    }
}

int main() {
    timeval tim;
    gettimeofday(&tim,NULL);
    double t1 = tim.tv_usec;
    int v = a(3,4);           
    gettimeofday(&tim,NULL);
    double t2 = …
Run Code Online (Sandbox Code Playgroud)

time benchmarking programming-languages stopwatch

3
推荐指数
1
解决办法
4万
查看次数

或者根据阵列大小突然减速

我写了一个简单的程序,它包含了一个巨大的切片中包含的所有值.当我使用10倍大的切片时,我预计会有10倍的性能下降.但是,在执行提供的测试时,存在巨大的性能差距.程序输出如下:

oadam@oadam-Latitude-E6510:~/$ go test -bench .
testing: warning: no tests to run
PASS
BenchmarkLittle 2000000000           0.11 ns/op
BenchmarkBig           1    2417869962 ns/op
ok      _/home/oadam/   5.048s
Run Code Online (Sandbox Code Playgroud)

和代码

package main

import (
    "math/rand"
    "testing"
)

const (
    little = 5000000
    big    = 50000000
)

var a = make([]uint32, big)

func benchOR(b *testing.B, l int) {
    for i := 0; i < l; i++ {
        a[i] = rand.Uint32()
    }

    var result uint32
    for i := 0; i < l; i++ {
        result |= a[i] …
Run Code Online (Sandbox Code Playgroud)

arrays benchmarking go

3
推荐指数
1
解决办法
80
查看次数

Rubinius和JRuby怎么可能这么慢?

我决定看看迭代一系列哈希需要多长时间.以下是代码:

pairs = [{name: "firstname", value: "string"},{name: "lastname", value: "string"},{name: "country", value: "string"},{name: "city", value: "string"},{name: "state", value: "string"},{name: "company", value: "string"},{name: "year", value: "string"},{name: "political_affiliation", value: "string"},{name: "social_security_number", value: "string"}] * 1000
blank = {}

start = Time.now
pairs.each do |pair|
  blank[pair[:name]] = pair[:value]
end

p Time.now - start
Run Code Online (Sandbox Code Playgroud)

通过从循环之前的当前时间减去循环之后的当前时间来计算时间.

根据代码中的数学计算,这是YARV 2.1.1中计算所花费的时间:

0.001962017
Run Code Online (Sandbox Code Playgroud)

这是Rubinius 2.2.6花了多长时间:

0.022598
Run Code Online (Sandbox Code Playgroud)

和jRuby 1.7.12

0.022317
Run Code Online (Sandbox Code Playgroud)

据说Rubinius和jRuby比YARV具有性能优势.为什么他们花费的时间几乎是执行相同基本操作的12倍?这是正常的还是我有不正确的配置?

ruby benchmarking rubinius jruby microbenchmark

3
推荐指数
1
解决办法
1742
查看次数

如何在cassandra和mysql之间进行性能测试?

我有兴趣在MySQL和Cassandra中基于相同的数据集并仅使用一个节点进行一些性能查询测试

我想要的是检查Cassandra和MySQL中查询的响应时间,以查找不同类型的数据量以及多个数据访问.(试着强调数据库).

有什么更好的方法呢?什么是最合适的基准?

mysql benchmarking performance-testing cassandra database-performance

3
推荐指数
1
解决办法
787
查看次数

为什么.toString()似乎修复了StringBuilder的OutOfMemoryError异常?

我正在学习如何使用JMH对事物进行微观标记.我开始看似简单的东西:StringBuildervs的字符串连接String +=.

根据我的理解,我应该创建一个State包含一个实例的对象,StringBuilder因为我不想对它的构造函数进行基准测试(我也不想每次迭代都是空的).同样适用于String +=测试 - 我希望我的String对象State与新字符串连接.

这是我的代码:

@State(Scope.Thread)
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public class Test {

    @State(Scope.Thread)
    public static class BenchmarkState {

        public StringBuilder    builder;
        public String           regularString;

        @Setup(Level.Iteration)
        public void setup() {
            builder         = new StringBuilder();
            regularString   = "";
        }

    }

    @Benchmark
    public String stringTest(BenchmarkState state) {
        state.regularString += "hello";
        return state.regularString;
    }

    @Benchmark
    public String stringBuilderTest(BenchmarkState state) {
        state.builder.append("hello");
        return state.builder.toString();
    }

    public static void main(String[] …
Run Code Online (Sandbox Code Playgroud)

java benchmarking microbenchmark jmh

3
推荐指数
1
解决办法
321
查看次数

C编译器优化的基准

比较各种C编译器的C优化器的标准基准是什么?

我对ARM基准测试(或可以移植到ARM的基准测试)特别感兴趣。

c benchmarking compiler-optimization

3
推荐指数
1
解决办法
128
查看次数