zoukankan      html  css  js  c++  java
  • c、rust、golang、swift性能比较

    mac

    计算速度视觉判断是(由好到差):c > rust > swift > golang

    内存开销在mac上是(由好到差):c > rust > golang > swift

    注:例子都是采用uint64可溢出方式计算fib

    如图:

    生成文件大小、占用线程数:

    c           8.3 KB                             1
    swift        48 KB (2.2)     47 KB (3.0)     1
    rust        348 KB                    1
    golang      1.6 MB (1.6.2)  1.1 MB (1.7rc2)    4 (1.6.2)  5 (1.7rc2)

    注:golang的缺省线程数与CPU核心数有关。

    ubuntu

    计算速度视觉判断是(由好到差):rust > c > swift > golang

    内存开销在ubuntu上是(由好到差):c > golang > swift > rust

    如图:

    生成文件大小、占用线程数:

    c        8.6 KB  1
    swift     18 KB  1
    rust     652 KB  1
    golang   1.7 MB  5

    Windows

    计算速度视觉判断是(由好到差):c(gcc) > golang > rust > c(vs2015)

    内存开销在windows上是(由好到差):c(gcc) > c(vs2015) > rust > golang

    如图:

    生成文件大小、占用线程数:

    c (gcc)       67.7 KB  1
    c (vs2015)   94.5 KB  1
    golang        1.03 MB  5
    rust          1.76 MB  1

    fib代码描述:

    如果输入整数 num <= 2,返回 1;

    否则 返回 fib (num - 2) + fib (num - 1)。

    例子:计算1~100的fib。

    编译:

    语言(mac/ubuntu/windows): 命令

    c  (llvm7.3.0:clang-703.0.31/gcc5.2.1/MinGW:gcc4.9.3 with -std=c11): gcc -Os test_c.c -o test_c

      (vs2015:cl 19.00.24210): cl /Os test_c.c /link /out:test_c_VS2015.exe

    rust (rustc 1.10.0 and cargo 0.11.0): cargo build --release

    golang (go1.6.2/go1.5.1/go1.7rc1): go build -ldflags "-s -w" test_go.go

    swift (swift 2.2/swift 3.0-preview1/--): swiftc -O test_swift.swift

    注意:以上并非正规测试方案,比较结果仅供参考,并无权威性。

  • 相关阅读:
    python中的编码问题
    CVPR2018 Tutorial 之 Visual Recognition and Beyond
    hdu 1376 Octal Fractions
    hdu 1329 Hanoi Tower Troubles Again!
    hdu 1309 Loansome Car Buyer
    hdu 1333 Smith Numbers
    hdu 1288 Hat's Tea
    hdu 1284 钱币兑换问题
    hdu 1275 两车追及或相遇问题
    hdu 1270 小希的数表
  • 原文地址:https://www.cnblogs.com/Bob-wei/p/5680648.html
Copyright © 2011-2022 走看看