标签: benchmarking

LINQ Ring:任何()vs Contains()用于巨大的集合

鉴于对象的大量集合,以下是否存在性能差异?

Collection.Contains:

myCollection.Contains(myElement)
Run Code Online (Sandbox Code Playgroud)

Enumerable.Any:

myCollection.Any(currentElement => currentElement == myElement)
Run Code Online (Sandbox Code Playgroud)

c# linq performance benchmarking

97
推荐指数
2
解决办法
5万
查看次数

基准测试:VMware与Virtualbox

我测试了VirtualBox 2.1.4和VMware Workstation 6.5.1,以便以后用作开发VM

主机:Ubuntu64,4GB内存,Core2Duo E6600,三星HD502IJ
嘉宾:Windows XP Home,1GB内存,8GB虚拟磁盘
Benchmark软件:SiSoft Sandra Light,HD Tune


对于主要用于开发工具(而不是无头服务器)的VM,您有什么经验或建议?

vmware benchmarking virtualbox

96
推荐指数
5
解决办法
14万
查看次数

简单的基准测试表现奇怪

昨天我发现了Christoph Nahr的一篇题为".NET Struct Performance"文章,文章 对几种语言(C++,C#,Java,JavaScript)进行了基准测试,为一种增加两个点结构(double元组)的方法.

事实证明,C++版本需要大约1000ms来执行(1e9次迭代),而C#在同一台机器上不能低于~3000ms(并且在x64中表现更差).

为了自己测试,我采用了C#代码(并略微简化为仅调用参数通过值传递的方法),并在i7-3610QM机器(3.1Ghz boost for single core),8GB RAM,Win8上运行. 1,使用.NET 4.5.2,RELEASE构建32位(x86 WoW64,因为我的操作系统是64位).这是简化版本:

public static class CSharpTest
{
    private const int ITERATIONS = 1000000000;

    [MethodImpl(MethodImplOptions.AggressiveInlining)]
    private static Point AddByVal(Point a, Point b)
    {
        return new Point(a.X + b.Y, a.Y + b.X);
    }

    public static void Main()
    {
        Point a = new Point(1, 1), b = new Point(1, 1);

        Stopwatch sw = Stopwatch.StartNew();
        for (int i = 0; i < ITERATIONS; i++) …
Run Code Online (Sandbox Code Playgroud)

c# performance benchmarking cil

96
推荐指数
3
解决办法
5295
查看次数

如何对JavaScript代码进行基准测试?

有没有一个包可以帮助我对JavaScript代码进行基准测试?我不是指Firebug和这样的工具.

我需要比较我实现的两个不同的JavaScript函数.我非常熟悉Perl的Benchmark(Benchmark.pm)模块,我正在寻找类似JavaScript的东西.

是否强调对JavaScript代码进行基准测试?我可以通过一次运行来计时吗?

javascript benchmarking

95
推荐指数
6
解决办法
5万
查看次数

为什么在C++中使用比Python更慢的字符串拆分?

我正在尝试将一些代码从Python转换为C++,以便获得一点速度并提高我生锈的C++技能.昨天我感到震惊的是,在Python中,从stdin读取行的简单实现要比C++快得多(参见本文).今天,我终于想出了如何在C++中使用合并分隔符(与python的split()类似的语义)拆分字符串,现在我正在体验似曾相识!我的C++代码需要更长的时间才能完成工作(尽管不是一个数量级,就像昨天的课程一样).

Python代码:

#!/usr/bin/env python
from __future__ import print_function                                            
import time
import sys

count = 0
start_time = time.time()
dummy = None

for line in sys.stdin:
    dummy = line.split()
    count += 1

delta_sec = int(time.time() - start_time)
print("Python: Saw {0} lines in {1} seconds. ".format(count, delta_sec), end='')
if delta_sec > 0:
    lps = int(count/delta_sec)
    print("  Crunch Speed: {0}".format(lps))
else:
    print('')
Run Code Online (Sandbox Code Playgroud)

C++代码:

#include <iostream>                                                              
#include <string>
#include <sstream>
#include <time.h>
#include <vector>

using namespace std;

void split1(vector<string> &tokens, const string …
Run Code Online (Sandbox Code Playgroud)

c++ python string benchmarking split

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

解释C,Clojure,Python,Ruby,Scala等基准测试

放弃

我知道人工基准是邪恶的.他们只能针对非常具体的狭隘情况显示结果.我不认为一种语言比另一种语言更好,因为有些愚蠢的替补.但我想知道为什么结果如此不同.请在底部查看我的问题.

数学基准描述

基准测试是简单的数学计算,可以找到相差6的素数对(所谓的性感素数).例如,100以下的性感素数将是:(5 11) (7 13) (11 17) (13 19) (17 23) (23 29) (31 37) (37 43) (41 47) (47 53) (53 59) (61 67) (67 73) (73 79) (83 89) (97 103)

结果表

在表中:以秒为单位的计算时间 运行:所有除了因子在VirtualBox中运行(Debian unstable amd64 guest,Windows 7 x64主机)CPU:AMD A4-3305M

  Sexy primes up to:        10k      20k      30k      100k               

  Bash                    58.00   200.00     [*1]      [*1]

  C                        0.20     0.65     1.42     15.00

  Clojure1.4               4.12     8.32    16.00    137.93

  Clojure1.4 (optimized)   0.95     1.82     2.30     16.00

  Factor                    n/a      n/a    15.00 …
Run Code Online (Sandbox Code Playgroud)

ruby python benchmarking scala clojure

91
推荐指数
8
解决办法
2万
查看次数

用于将字符向量转换为POSIXct/POSIXlt的as.POSIXct/as.POSIXlt和strptime之间的区别

我在这里跟了一些问题,询问如何将字符向量转换为datetime类.我经常看到2种方法,strptime和as.POSIXct/as.POSIXlt方法.我看了两个函数,但不清楚区别是什么.

strptime

function (x, format, tz = "") 
{
    y <- .Internal(strptime(as.character(x), format, tz))
    names(y$year) <- names(x)
    y
}
<bytecode: 0x045fcea8>
<environment: namespace:base>
Run Code Online (Sandbox Code Playgroud)

as.POSIXct

function (x, tz = "", ...) 
UseMethod("as.POSIXct")
<bytecode: 0x069efeb8>
<environment: namespace:base>
Run Code Online (Sandbox Code Playgroud)

as.POSIXlt

function (x, tz = "", ...) 
UseMethod("as.POSIXlt")
<bytecode: 0x03ac029c>
<environment: namespace:base>
Run Code Online (Sandbox Code Playgroud)

做一个微基准测试,看看是否存在性能差异:

library(microbenchmark)
Dates <- sample(c(dates = format(seq(ISOdate(2010,1,1), by='day', length=365), format='%d-%m-%Y')), 5000, replace = TRUE)
df <- microbenchmark(strptime(Dates, "%d-%m-%Y"), as.POSIXlt(Dates, format = "%d-%m-%Y"), times = 1000)

Unit: milliseconds
                                    expr      min       lq   median       uq      max …
Run Code Online (Sandbox Code Playgroud)

time benchmarking r date

89
推荐指数
2
解决办法
5万
查看次数

测量函数执行时间的最佳方法是什么?

显然我能做到DateTime.Now.After- DateTime.Now.Before但必须有更复杂的东西.

任何提示赞赏.

c# performance benchmarking execution-time

84
推荐指数
3
解决办法
12万
查看次数

Google Analytics是否有性能开销?

Google Analytics在多大程度上会影响效果?

我正在寻找以下内容:

  • 基准(包括响应时间/页面加载时间等)
  • 链接或结果与类似的基准

在您的网站上测试Google Analytics(GA)的一种(可能的)方法:

  1. 从您自己的服务器提供ga.js(Google AnalyticsJavaScript文件).
  2. 从Google Daily(测试1)和Weekly(测试2)更新.

我很想知道这会如何减少客户端Web服务器和GA服务器之间的通信.

有没有人进行过这些测试?如果是这样,你能提供你的结果吗?如果没有,是否有人有更好的方法来测试使用GA的性能损失(或缺乏)?

performance benchmarking google-analytics

81
推荐指数
5
解决办法
2万
查看次数

Ruby方法的测量和基准时间

如何在Ruby中测量方法和该方法中各个语句所花费的时间.如果您看到以下方法,我想测量方法所花费的总时间以及数据库访问和redis访问所用的时间.我不想在每个声明之前写Benchmark.measure.ruby解释器是否为我们提供了任何钩子?

def foo
# code to access database
# code to access redis. 
end
Run Code Online (Sandbox Code Playgroud)

ruby time benchmarking interpreter ruby-on-rails

76
推荐指数
5
解决办法
5万
查看次数