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

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

  • 相关阅读:
    MyBatis环境配置
    log4j配置不同的类多个日志文件
    Http协议头、代理
    Apache二级域名实现
    Flash Builder 4.7 完美破解
    网页设计方面,哪些中英文字体的组合能有好的视觉效果
    网页设计中最常用的字体
    sublime text 3 插件:package control
    大量实用工具类、开源包,该帖绝对值得你收藏!
    10个简化Web开发者工作的HTML5开发工具
  • 原文地址:https://www.cnblogs.com/Bob-wei/p/5680648.html
Copyright © 2011-2022 走看看