标签: benchmarking

Java vs C#:有没有比较执行速度的研究?

拿出与基准和基准比较相关的所有明显的警告,是否有任何研究(一系列记录良好且无偏见的测试)比较两种语言的平均执行速度?谢谢

.net c# java benchmarking

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

Rust中的基准程序

如何在Rust中对程序进行基准测试?例如,如何在几秒钟内获得程序的执行时间?

time benchmarking rust

46
推荐指数
7
解决办法
2万
查看次数

如何衡量.NET中的代码性能?

我正在使用DateTime对一行C#代码进行一些真正的快速和脏的基准测试:

long lStart = DateTime.Now.Ticks;
// do something
long lFinish = DateTime.Now.Ticks;
Run Code Online (Sandbox Code Playgroud)

问题在于结果:

Start Time [633679466564559902]
Finish Time [633679466564559902]

Start Time [633679466564569917]
Finish Time [633679466564569917]

Start Time [633679466564579932]
Finish Time [633679466564579932]

...等等.

鉴于开始和结束时间相同,Ticks显然不够精细.

那么,我怎样才能更好地衡量绩效呢?

.net performance benchmarking

45
推荐指数
6
解决办法
2万
查看次数

为什么Symfony2在基准测试中表现如此糟糕?这有关系吗?

我和我的同事正在选择一个Web框架来开发一个高流量的网站.我们真的很擅长node.js + expressphp + symfony2.两者都是伟大的框架,但我们有点担心Symfony2的,因为它似乎被大多数web框架跑赢那里.

以下是证明它的基准:http: //www.techempower.com/benchmarks/

出于这个原因,我们可能会使用的node.js +表达,但我仍然不知道为什么Symfony2的在基准执行如此糟糕.

benchmarking symfony web

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

Berkeley DB SQL与SQLite相比有多快?

Oracle最近向SQLite发布了Berkeley DB后端.我碰巧有一个数百兆字节的SQLite数据库,可以从"改进的性能,并发性,可伸缩性和可靠性"中获益,但Oracle的网站似乎缺乏对这些改进的任何测量.有没有人在这里做过一些基准测试?

sqlite benchmarking berkeley-db

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

UNIX`time`命令对于基准测试是否足够准确?

假设我想对两个程序进行基准测试:foo.py和bar.py.

是几千次运行和各自的平均值time python foo.pytime python bar.py足够的分析和比较他们的速度?


编辑:此外,如果每个程序的执行次高(假设它不是上述),time仍然可以使用?

unix linux benchmarking profiling

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

Julia语言真的和它声称的一样快吗?

这篇文章之后,我决定将Julia与GNU Octave进行比较,结果与julialang.org中的加速结果不一致.

我编译了Julia和GNU Octave CXXFLAGS='-std=c++11 -O3',结果我得到了:

GNU Octave

a=0.9999;

tic;y=a.^(1:10000);toc
Elapsed time is 0.000159025 seconds.

tic;y=a.^(1:10000);toc
Elapsed time is 0.000162125 seconds.

tic;y=a.^(1:10000);toc
Elapsed time is 0.000159979 seconds.
Run Code Online (Sandbox Code Playgroud)

-

tic;y=cumprod(ones(1,10000)*a);toc
Elapsed time is 0.000280142 seconds.

tic;y=cumprod(ones(1,10000)*a);toc
Elapsed time is 0.000280142 seconds.

tic;y=cumprod(ones(1,10000)*a);toc
Elapsed time is 0.000277996 seconds.
Run Code Online (Sandbox Code Playgroud)

朱莉娅

tic();y=a.^(1:10000);toc()
elapsed time: 0.003486508 seconds

tic();y=a.^(1:10000);toc()
elapsed time: 0.003909662 seconds

tic();y=a.^(1:10000);toc()
elapsed time: 0.003465313 seconds
Run Code Online (Sandbox Code Playgroud)

-

tic();y=cumprod(ones(1,10000)*a);toc()
elapsed time: 0.001692931 seconds

tic();y=cumprod(ones(1,10000)*a);toc()
elapsed time: 0.001690245 seconds

tic();y=cumprod(ones(1,10000)*a);toc()
elapsed …
Run Code Online (Sandbox Code Playgroud)

benchmarking octave julia

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

什么是FLOP/s并且它是一个很好的性能衡量标准?

我被要求测量一个解决多CPU系统微分方程的fortran程序的性能.我的雇主坚持认为我测量FLOP/s(每秒浮动操作)并将结果与​​基准(LINPACK)进行比较,但我不相信它是要走的路,因为没有人可以向我解释什么是FLOP.

我做了一些关于FLOP究竟是什么的研究,我得到了一些相当矛盾的答案.我得到的最受欢迎的答案之一是'1 FLOP =加法和乘法运算'.真的吗?如果是这样,再次,在物理上,究竟是什么意思?

无论我最终使用哪种方法,它都必须是可扩展的.一些版本的代码解决了具有数百万未知数的系统,并且需要数天才能执行.

在我的案例中,还有哪些其他有效的衡量绩效的方法(我的案例摘要是'fortran代码,它在数百个CPU上反复进行了大量的算术计算)?

performance benchmarking flops

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

jsPerf如何工作?

今天我参观了jsPerf,现在我想知道......

  1. 什么是"ops/sec"?
  2. 它会做多少次迭代?
  3. 在什么基础上计算哪个更快?这些计算背后的公式是什么?

示例:http://jsperf.com/concatenation-vs-join

有人能告诉我吗?

提前致谢.

javascript performance benchmarking jsperf

41
推荐指数
2
解决办法
8941
查看次数

关于仅使用标头的c ++库的使用量化指标(基准)

我试图用SO找到答案.有许多问题列出了在c ++中构建一个只有头文件库的各种优缺点,但是我无法找到一个以可量化的术语来构建这样的库.

因此,在可量化的术语中,使用传统上分离的c ++标头和实现文件与仅标头之间有什么不同?

为简单起见,我假设不使用模板(因为它们只需要标题).

详细说明,我列出了我从文章中看到的优点和缺点.显然,有些不容易量化(例如易用性),因此无法用于量化比较.我会用可量化的方式标记那些我期望可量化的指标.

仅限标题的优点

  1. 由于您不需要在构建系统中指定链接器选项,因此更容易包含.
  2. 您始终使用与代码的其余部分相同的编译器(选项)编译所有库代码,因为库的函数在代码中内联.
  3. 它可能要快得多.(定量的)
  4. 可以为编译器/链接器提供更好的优化机会(如果可能,可以解释/量化)
  5. 如果你仍然使用模板是必需的.

仅限标题的缺点

  1. 它使代码膨胀.(可量化的)(这会如何影响执行时间和内存占用)
  2. 编译时间更长.(定量的)
  3. 失去接口和实现的分离.
  4. 有时会导致难以解决的循环依赖关系.
  5. 防止共享库/ DLL的二进制兼容性.
  6. 它可能会加剧那些喜欢使用C++的传统方式的同事.

您可以从较大的开源项目(比较类似大小的代码库)中使用的任何示例都非常感激.或者,如果您知道可以在仅标题版本和分离版本之间切换的项目(使用包含两者的第三个文件),那将是理想的.轶事数字也很有用,因为它们给了我一个可以获得一些洞察力的球场.

利弊来源:

提前致谢...

更新:

对于可能稍后阅读并且有兴趣获得关于链接和编译的一些背景信息的任何人,我发现这些资源很有用:

更新:(回应下面的评论)

仅仅因为答案可能不同,并不意味着测量是无用的.你必须开始测量一些点.您拥有的测量值越多,图像就越清晰.我在这个问题上要求的不是整个故事,而是对图片的一瞥.当然,如果他们想要不道德地宣传他们的偏见,任何人都可以使用数字来扭曲争论.但是,如果有人对两个选项之间的差异感到好奇并发布这些结果,我认为这些信息很有用.

没有人对这个话题感到好奇,足以衡量它吗?

我喜欢枪战项目.我们可以从删除大部分变量开始.只在一个版本的linux上使用一个版本的gcc.仅对所有基准测试使用相同的硬件.不要使用多个线程进行编译.

然后,我们可以测量:

  • 可执行大小
  • 运行
  • 内存占用
  • 编译时间(对于整个项目和更改一个文件)
  • 链接时间

c++ benchmarking header-only

41
推荐指数
2
解决办法
2949
查看次数