c rust golang swift效能比較

2022-01-13 08:45:58 字數 1841 閱讀 6118

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

mysql redis mongodb效能比較

1 redis所有資料都是放在記憶體中的,持久化是使用rdb方式或者aof方式。2 mongodb的所有資料實際上是存放在硬碟的,所有要操作的資料通過mmap的方式對映到記憶體某個區域內。然後,mongodb就在這塊區域裡面進行資料修改,避免了零碎的硬碟操作。至於mmap上的內容flush到硬碟就是...

Mysql count 的多種使用方式效能比較

mysql的count函式用於統計符合條件的記錄數,常用的方式有 1 count 2 count 1 3 count id 4 count col 首先需要明確一點 count函式對於返回的結果集,一行行地判斷,不會統計null值。初學者經常會糾結到底應該使用哪種方式做計數,實際上這四種計數方式是有...

搭建效能比squid高很多的varnish伺服器

varnish是一款高效能的開源http加速器,挪威最大的 使用3臺varnish代替了原來的12臺squid,效能比以前更好。varnish的作者poul henning kamp是freebsd的核心開發者之一,他認為現在的計算機比起1975年已經複雜許多。在1975年時,儲存媒介只有兩種 記憶...