Tag: 基准

C#:这个基准class是否准确?

我创build了一个简单的类来testing我的一些方法。 但是准确吗? 我对基准testing,时机testing等方面有些新颖,所以我想我可以在这里要求一些反馈。 另外,如果它是好的,也许别人也可以利用它:) public static class Benchmark { public static IEnumerable<long> This(Action subject) { var watch = new Stopwatch(); while (true) { watch.Reset(); watch.Start(); subject(); watch.Stop(); yield return watch.ElapsedTicks; } } } 你可以像这样使用它: var avg = Benchmark.This(() => SomeMethod()).Take(500).Average(); 任何反馈? 它看起来相当稳定和准确,还是我错过了什么?

为什么matrix与numpy相比,乘法速度要快于Python中的ctypes?

我试图找出matrix乘法的最快方法,并尝试了3种不同的方法: 纯Python的实现:这里没有什么惊喜。 numpy.dot(a, b)实现使用numpy.dot(a, b) 在Python中使用ctypes模块与C接口。 这是转换成共享库的C代码: #include <stdio.h> #include <stdlib.h> void matmult(float* a, float* b, float* c, int n) { int i = 0; int j = 0; int k = 0; /*float* c = malloc(nay * sizeof(float));*/ for (i = 0; i < n; i++) { for (j = 0; j < n; […]

如何在Clojure中对函数进行基准testing?

我知道我可以花时间来评估一个函数可以使用时间函数/macros在屏幕上/标准输出打印出来。 时间macros返回评估函数的值,这使得它内联使用它很好。 不过,我想在特定情况下自动测量运行时间。 有没有一个函数返回一些库中的时间来帮助这个基准testing?

Berkeley DB SQL与SQLite相比有多快?

Oracle最近向SQLite发布了一个Berkeley DB后端 。 我碰巧有一个数百兆字节的SQLite数据库,可以很好地从“改进的性能,并发性,可伸缩性和可靠性”中受益,但是甲骨文的网站似乎缺乏对这些改进的测量 。 有没有人在这里做过一些基准testing?

清除一个小整数数组:memset与for循环

有两种方法可以将整数/浮点数组清零: memset(array, 0, sizeof(int)*arraysize); 要么: for (int i=0; i <arraysize; ++i) array[i]=0; 显然,对于大型arraysize ,memset更快。 但是,memset的开销实际上大于for循环的开销? 例如,对于大小为5的数组 – 这将是最好的? 第一个,第二个,或者甚至是未滚动的版本: array[0] = 0; array[1] = 0; array[2] = 0; array[3] = 0; array[4] = 0;

什么是更高性能? Haskell或OCaml

我花了18个月的时间来掌握函数式编程,从学习OCaml开始,几个星期之后,Haskell开始了。 现在我想进行下一步并实现一些实际的应用程序:一个简单的实时地形编辑器。 我写了大量的实时地形渲染引擎,所以这是一个熟悉的话题。 而使用的recursionalgorithm和数据结构似乎非常适合于function实现。 随着这是一个实时应用程序,我自然而然地寻找我可以得到的最佳性能。 现在一些(恕我直言,非常恼人的)OCaml的支持者相对于OCaml或者F#来说,相对于Haskell来说相当慢。 但根据计算机语言基准游戏, Haskell经常击败OCaml,即使只有相当小的分数 – 仍然存在问题,这个基准只采取非常具体的样本。 正确的做法当然是用两种语言来实现这个程序,然后比较一下,但是我根本不想做双重工作。 但也许其他人在OCaml和Haskell做了类似的应用程序,并给出一些数字?

将variables传递给函数时如何使用python timeit?

我正在努力用这个timeit,并想知道如果有人有任何提示 基本上我有一个函数(我传递一个值),我想testing的速度,并创造了这个: if __name__=='__main__': from timeit import Timer t = Timer(superMegaIntenseFunction(10)) print t.timeit(number=1) 但是当我运行它,我得到奇怪的错误,如来自timeit模块: ValueError: stmt is neither a string nor callable 如果我自己运行该function,它工作正常。 它的时候,我把它包装在它的模块,我得到的错误(我曾尝试使用双引号,并没有..sameoutput)。 任何build议将是真棒! 谢谢!

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

我在这里问了一些关于如何将字符向量转换为date时间类的问题。 我经常看到2种方法,strptime和as.POSIXct / as.POSIXlt方法。 我看了2个function,但不清楚有什么不同。 strptime function (x, format, tz = "") { y <- .Internal(strptime(as.character(x), format, tz)) names(y$year) <- names(x) y } <bytecode: 0x045fcea8> <environment: namespace:base> as.POSIXct function (x, tz = "", …) UseMethod("as.POSIXct") <bytecode: 0x069efeb8> <environment: namespace:base> as.POSIXlt function (x, tz = "", …) UseMethod("as.POSIXlt") <bytecode: 0x03ac029c> <environment: namespace:base> 做一个microbenchmark,看看是否有性能差异: library(microbenchmark) Dates <- […]

大型公共数据集?

我正在寻找一些大型的公共数据集,特别是: 大型样本Web服务器日志已被匿名。 用于数据库性能基准testing的数据集。 任何其他的大型公共数据集的链接将不胜感激。 我已经了解了亚马逊的公共数据集: http : //aws.amazon.com/publicdatasets/

在Java中,可以比&&更快吗?

在这个代码中: if (value >= x && value <= y) { 当value >= x和value <= y情况下, 如果没有特定的模式可能是真的, 那么使用&运算符会比使用&&更快吗? 具体来说,我正在思考如何&&懒惰地评估右侧expression式(即只有当LHS是真实的),这意味着一个条件,而在Java &在这方面保证严格评估两个(布尔)子expression式。 价值结果是相同的任何方式。 但是,当>=或<=运算符将使用一个简单的比较指令时, &&必须包含一个分支,并且该分支容易出现分支预测失败 – 按照这个非常着名的问题: 为什么处理sorting数组的速度比一个未分类的数组? 因此,强迫expression没有懒惰的组件肯定会更确定,不容易被预测失败。 对? 笔记: 显然,如果代码如下所示,我的问题的答案是否定的: if(value >= x && verySlowFunction()) 。 我正在关注“足够简单”的RHSexpression式。 那里有一个条件分支( if语句)。 我无法向自己certificate这是无关紧要的,而替代forms可能是更好的例子,比如boolean b = value >= x && value <= y; 这一切都落入了可怕的微观优化的世界。 是的,我知道:-) …虽然有趣? 更新只是为了解释我为什么感兴趣:我一直在盯着Martin Thompson在他的Mechanical Sympathy博客上写过的系统,在他来和Aeron 谈论之后 […]