鉴于对象的大量集合,以下是否存在性能差异?
myCollection.Contains(myElement)
Run Code Online (Sandbox Code Playgroud)
myCollection.Any(currentElement => currentElement == myElement)
Run Code Online (Sandbox Code Playgroud) 我测试了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,您有什么经验或建议?
昨天我发现了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) 有没有一个包可以帮助我对JavaScript代码进行基准测试?我不是指Firebug和这样的工具.
我需要比较我实现的两个不同的JavaScript函数.我非常熟悉Perl的Benchmark(Benchmark.pm)模块,我正在寻找类似JavaScript的东西.
是否强调对JavaScript代码进行基准测试?我可以通过一次运行来计时吗?
我正在尝试将一些代码从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) 我知道人工基准是邪恶的.他们只能针对非常具体的狭隘情况显示结果.我不认为一种语言比另一种语言更好,因为有些愚蠢的替补.但我想知道为什么结果如此不同.请在底部查看我的问题.
基准测试是简单的数学计算,可以找到相差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) 我在这里跟了一些问题,询问如何将字符向量转换为datetime类.我经常看到2种方法,strptime和as.POSIXct/as.POSIXlt方法.我看了两个函数,但不清楚区别是什么.
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)
function (x, tz = "", ...)
UseMethod("as.POSIXct")
<bytecode: 0x069efeb8>
<environment: namespace:base>
Run Code Online (Sandbox Code Playgroud)
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) 显然我能做到DateTime.Now.After
- DateTime.Now.Before
但必须有更复杂的东西.
任何提示赞赏.
Google Analytics在多大程度上会影响效果?
我正在寻找以下内容:
在您的网站上测试Google Analytics(GA)的一种(可能的)方法:
我很想知道这会如何减少客户端Web服务器和GA服务器之间的通信.
有没有人进行过这些测试?如果是这样,你能提供你的结果吗?如果没有,是否有人有更好的方法来测试使用GA的性能损失(或缺乏)?
如何在Ruby中测量方法和该方法中各个语句所花费的时间.如果您看到以下方法,我想测量方法所花费的总时间以及数据库访问和redis访问所用的时间.我不想在每个声明之前写Benchmark.measure.ruby解释器是否为我们提供了任何钩子?
def foo
# code to access database
# code to access redis.
end
Run Code Online (Sandbox Code Playgroud) benchmarking ×10
performance ×4
c# ×3
python ×2
ruby ×2
time ×2
c++ ×1
cil ×1
clojure ×1
date ×1
interpreter ×1
javascript ×1
linq ×1
r ×1
scala ×1
split ×1
string ×1
virtualbox ×1
vmware ×1