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

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

c、rust、golang、swift性能比较的更多相关文章

  1. Swift 性能探索和优化分析

    本文首发在 CSDN<程序员>杂志,订阅地址 http://dingyue.programmer.com.cn/. Apple 在推出 Swift 时就将其冠以先进,安全和高效的新一代编程 ...

  2. 【基本功】深入剖析Swift性能优化

    简介 2014年,苹果公司在WWDC上发布Swift这一新的编程语言.经过几年的发展,Swift已经成为iOS开发语言的“中流砥柱”,Swift提供了非常灵活的高级别特性,例如协议.闭包.泛型等,并且 ...

  3. 深入剖析Swift性能优化

    简介 2014年,苹果公司在WWDC上发布Swift这一新的编程语言.经过几年的发展,Swift已经成为iOS开发语言的“中流砥柱”,Swift提供了非常灵活的高级别特性,例如协议.闭包.泛型等,并且 ...

  4. Swift 性能相关

    起初的疑问源自于「在 Swift 中的, Struct:Protocol 比 抽象类 好在哪里?」.但是找来找去都是 Swift 性能相关的东西.整理了点笔记,供大家可以参考一下. 一些疑问 在正题开 ...

  5. 排查golang的性能问题 go pprof 实践

    小结: 1.内存消耗分析 list peek  定位到函数   https://mp.weixin.qq.com/s/_LovnIqJYAuDpTm2QmUgrA 使用pprof和go-torch排查 ...

  6. Rust初步(五):Rust与C#性能比较

    我学习Rust的目的并不是说期望用它来取代掉现有的开发平台或语言.相反,我认为当前绝大部分研发团队,都不可能只用一个平台或者一个语言. 当组织增长,他们越来越依赖大量的编程语言.不同的编程语言有不同的 ...

  7. <转>golang 并发性能数据

    1.管道chan吞吐极限10,000,000,单次Put,Get耗时大约100ns/op,无论是采用单Go程,还是多Go程并发(并发数:100, 10000, 100000),耗时均没有变化,Go内核 ...

  8. 真实世界中的 Swift 性能优化

    那么有什么因素会导致代码运行缓慢呢?当您在编写代码并选择架构的时候,深刻认识到这些架构所带来的影响是非常重要的.我将首先谈一谈:如何理解内联.动态调度与静态调度之间的权衡,以及相关结构是如何分配内存的 ...

  9. Golang应用性能问题排查分析

    背景 公司有一个使用golang开发的采集模块,负责调用多个外部系统采集数据:最近做了一次架构上的调整,将采集模块分成api.job两个子模块,并部署到容器中,拆分前部署在虚机上. 现象 部分采集任务 ...

随机推荐

  1. vertical-align:middle;一般用于img和行内文字对齐方式

    vertical-align:top ;文字和行内块元素的顶部对齐 vertical-align:middle;居中 vertical-align:bottom;底对齐

  2. [置顶] 我的Android进阶之旅------>Android中制作和查看自定义的Debug版本Android签名证书

    Android应用开发接入各种SDK时会发现,有很多SDK是需要靠package name和的证书指纹SHA1码来识别的,如百度地图SDK.这样如果使用默认自动生成的debug的话就会给开发调试工作带 ...

  3. 印象笔记windows端-快捷键大全

    作为印象笔记粉,当然要多掌握些快捷键,提高办公效率. 补: ctrl + shift + , 光标内字体变小 ctrl + shitf + . 光标内字体变大

  4. 二值法方法综述及matlab程序

    在某些图像处理当中一个关键步是二值法,二值化一方面能够去除冗余信息,另一方面也会使有效信息丢失.所以有效的二值化算法是后续的处理的基础.比如对于想要最大限度的保留下面图的中文字,以便后续的定位处理. ...

  5. 中文价格识别为数字 java代码

    运行效果: public class VoicePriceRecognition { private final static String NOT_HAS_PRICE_CONTENT="n ...

  6. Redis分布式锁的python实现

    案例1: #!/usr/bin/env python # coding=utf-8 import time import redis class RedisLock(object): def __in ...

  7. 剑指offer 面试6题

    面试6题: 题目:从尾到头打印链表 输入一个链表,从尾到头打印链表每个节点的值. 解题代码: # -*- coding:utf-8 -*- # class ListNode: # def __init ...

  8. C#中往数据库插入空值报错解决方法

    C#中的NUll于SQL中的null是不一样的, SQL中的null用C#表示出来就是DBNull.Value 在用C#往数据库里面插入记录的时候, 可能有的字段你不赋值,那么这个字段的值就为null ...

  9. 03_Hadoop简单介绍以及版本信息

    一.海量数据: 量:大.数目多,数据量到达PB.ZB级别,条目数到达几十亿条.百亿条 1)存储:分布式,集群的概念,管理(主节点.从节点),HDFS(HadoopDistributedFileSyst ...

  10. 主攻ASP.NET.4.5.1 MVC5.0之重生:政府行政网站常用友情链接跳转javascript[干货分享]

    <!-----------------------------------> <script language="JavaScript" type="t ...