小编igo*_*ouy的帖子

Python比C++更快更轻吗?

我一直认为Python的优点是代码可读性和开发速度,但时间和内存使用率并不如C++那么好.

这些统计数据让我很难受.

您的经验告诉您有关Python与C++时间和内存使用情况的经验?

c++ python memory statistics performance

83
推荐指数
6
解决办法
17万
查看次数

Haskell与JVM性能

我想为网站编写一个后端系统(它将是一个自定义搜索式服务).它需要高度并发和快速.考虑到我对并发的期望,我计划使用Haskell或Scala等函数式语言.

但是,速度也是一个优先事项.http://benchmarksgame.alioth.debian.org结果似乎表明Java几乎和C/C++一样快,Scala通常非常好,但对于大多数任务,Haskell的范围从慢到慢.

有没有人有任何性能基准/使用Haskell vs Scala vs Java执行高度并发任务的经验?

我见过的一些网站表明Scala有内存泄漏,这对于像这样的长期运行服务来说可能很糟糕.

在选择(性能和并发性是最高优先级)之前,我应该写什么服务,或者我应该考虑什么?

谢谢

java haskell jvm scala

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

在所有这些小数学基准测试中,为什么Erlang比Java慢?

在考虑用于分布式/并发/故障转移/可扩展后端环境的Java替代方案时,我发现了Erlang.我花了一些时间在书籍和文章上,其中几乎所有人(甚至是Java上瘾的人)都说Erlang在这样的环境中是更好的选择,因为许多有用的东西都是以不易出错的方式开箱即用的.

我确信Erlang在大多数情况下更快,主要是因为不同的垃圾收集策略(每个进程),缺少共享状态(黑白线程和进程)和更紧凑的数据类型.但是当我发现Erlang与Java数学样本的比较时,我感到非常惊讶,其中Erlang的速度慢了几个,例如从x10到x100.

即使是并发任务,也可以在几个核心和一个核心上完成.

这是什么原因?想到这些答案:

  • 在大多数任务中使用Java原语(=> no heap/gc)
  • Java代码和Erlang进程中的线程数相同,因此actor模型在这里没有优势
  • 或者只是Java是静态类型的,而Erlang则不是
  • 别的什么?

如果那是因为这些是非常具体的数学算法,那么任何人都可以展示更多真实/实践性能测试吗?

更新:到目前为止,我已经得到了答案,总结了Erlang不是这种特定"快速Java案例"的正确工具,但我不清楚这一点 - 这里Erlang效率低下的主要原因是什么:动态类型,GC还是可怜的原生编译?

java erlang performance compare

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

C++ CLI.本机部分是用纯C++编写的,但是在CLI中编译的速度和纯本机C++一样快?

我想将音频计算委托给C++层,但是通过WPF GUI处理和编辑音频内容.

我简要介绍了C++/CLI,我想知道:

  • 我应该使用C++/CLI作为C#GUI和C++音频管理之间的中间层
  • 或者我应该简单地将我的代码放在C++/CLI中并期望它以相同的方式编译,因此效率很高.

编辑:随着火焰战可能开始.这是一个关于基准游戏的链接,它明确指出C/C++是速度获胜者.我在问:我应该在C++ Dll或C++ CLI程序集中编写C++.

c++ c++-cli

14
推荐指数
2
解决办法
5454
查看次数

为什么这个V8/Javascript代码表现如此糟糕?

我一直在寻找一些有趣的编程基准来看看与其他语言相比node.js的表现如何:http://benchmarksgame.alioth.debian.org/u32/compare.php?lang = node &lang2 = php

虽然结果主要涉及您通常希望使用C或Fortran变体解决的算法问题,但一个测试对于V8来说非常糟糕:

pidigits - 比PHP慢52倍

由于v8在所有其他测试中表现得比PHP更好,我认为代码有问题或某些特定于V8/Javascript的实现使得它执行得非常糟糕.它是什么?

代码1:V8

// The Computer Language Benchmarks Game
//  http://shootout.alioth.debian.org
//
//  Contributed by Matthew Wilson 
//  biginteger derived from Tom Wu's jsbn.js


var compareTo, multiply, divide, addTo, add, intValue, shiftLeft, nbv;

function main($n) {
  var $i=1, $s="", $d, neg10=nbv(-10), three=nbv(3), ten=nbv(10), g = 1, $g,
  digits=Array(10), $z0=nbv(1), $z1=nbv(0), $z2=nbv(1), negdigits=Array(10),
  k = 0, $k, l = 2, $l, a;

  for(var i=0; i<10; ++i) { negdigits[i] = multiply(digits[i] …
Run Code Online (Sandbox Code Playgroud)

javascript compiler-construction performance v8 node.js

11
推荐指数
1
解决办法
2616
查看次数

多线程程序没有加速

我正在使用Go语言并发,发现了一些对我来说不透明的东西.

我写了并行矩阵乘法,也就是说,每个任务计算产品矩阵的单行,乘以源矩阵的相应行和列.

这是Java程序

public static double[][] parallelMultiply(int nthreads, final double[][] m1, final double[][] m2) {
    final int n = m1.length, m = m1[0].length, l = m2[0].length;
    assert m1[0].length == m2.length;

    double[][] r = new double[n][];

    ExecutorService e = Executors.newFixedThreadPool(nthreads);
    List<Future<double[]>> results = new LinkedList<Future<double[]>>();
    for (int ii = 0; ii < n; ++ii) {
        final int i = ii;
        Future<double[]> result = e.submit(new Callable<double[]>() {
            public double[] call() throws Exception {
                double[] row = new double[l];
                for (int j = …
Run Code Online (Sandbox Code Playgroud)

java parallel-processing performance multithreading go

11
推荐指数
1
解决办法
1480
查看次数

在计算机语言基准游戏的F#Threadring条目中,"if if then()"有什么影响?

计算机语言基准测试游戏对于ThreadringF#条目包含一条看似无用的行:if false then ().当我注释掉这一行时,程序运行得更快(对于50000000的输入,~2s vs~55s)并产生相同的结果.这是如何运作的?为什么这条线路在那里?编译器到底做了什么似乎是无操作?

代码:

let ringLength = 503

let cells = Array.zeroCreate ringLength
let threads = Array.zeroCreate ringLength
let answer = ref -1

let createWorker i = 
    let next = (i+1)%ringLength
    async { let value = cells.[i]
            if false then () 
            match value with
            | 0 -> answer := i+1
            | _ -> 
                cells.[next] <- value - 1 
                return! threads.[next] }

[<EntryPoint>]
let main args = 
    cells.[0] <- if args.Length>0 then int …
Run Code Online (Sandbox Code Playgroud)

f#

11
推荐指数
2
解决办法
259
查看次数

如何获取"计算机语言基准游戏"(以前称为优秀语言枪战)的源代码?

我和一个学生正在建立一个新的口译员家庭,我们希望以现有的口译员为基准.我们很乐意下载包含计算机语言基准游戏中使用的所有源代码的tarball或zip文件.我已经从项目页面下载了zip文件,但它只包含一些在Debian lenny上不起作用的基础结构,以及仅包含2个基准测试的Python源代码.所有其他源代码都是MIA.

另一个问题是交互式下拉菜单似乎显示Java源,无论要求什么语言.不是说我想要通过无数的菜单; 我只想要所有的来源.

由于无法找到此源代码,我觉得自己是个完全白痴,但我不能.谁能告诉我如何下载语言基准游戏中使用的所有源代码


[NB我认为这个问题适用于SO,因为基准测试对于需要关注性能的程序员来说是一个至关重要的资源.

benchmarking programming-languages

10
推荐指数
1
解决办法
2822
查看次数

Freepascal真的使用*远*比gcc更少的内存

在语言枪战基准http://benchmarksgame.alioth.debian.org/表明FPC程序使用约1 /第50次的存储器的,使用克++使用比较的方案.难道这些基准无意青睐FPC或者是难道真的是FPC是要比G ++好?我一直认为这些基准测试是一系列不错的微基准测试,所以我对这些结果感到惊讶,因为50倍是相当重要的恕我直言.

参考文献:

http://benchmarksgame.alioth.debian.org/u32/pascal.php http://benchmarksgame.alioth.debian.org/u64q/pascal.html

编辑: 这变得更加有趣,因为这个页面声称pascal只使用了8KB的一些程序,这看起来非常低

g++ freepascal fpc

9
推荐指数
2
解决办法
2778
查看次数

减少 Java 中的内存消耗

我曾参与过一些项目,其中实现更好的性能和减少内存消耗是主要目标。但是相信我,在 Java 中控制内存消耗已经很困难了。

这个wiki 页面上说“ Java 程序速度,在某些情况下,Java 在低级和数字基准测试中等同于 C++。

这些统计数据并没有真正显示时间计算性能基准的主要差异。但是,Java 中的内存使用量比 C++ 高得多,因为每个对象有 8 字节的开销,Java 中每个数组有 12 字节的开销(32 位;64 位 java 中的两倍),如中所述以上维基链接。

现在的问题是人们采取了哪些措施来最小化 Java 中的内存使用率?

请注意,我更关心内存而不是性能,因为我想不出比“编写更好的程序”和“在 JDK 中正确调整内存”更好的方法

java memory performance

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