問題描述
實現乙個計算斐波那契數列的遞迴函式, rust**和js**在我的電腦上耗時都是11秒, js甚至比rust快一點
問題出現的環境背景
本人剛接觸rust,聽說它的效能可以和c++媲美,所以就想比較一下到底比js快多少,可是程式跑出來的結果和想象中的不太一樣,順帶一提,在我同事的電腦上用c++跑耗時7秒,當傳入引數為50時,他那邊c++耗時73秒,我這邊rust耗時132秒,差別太大了
相關**
rust**:
extern crate stopwatch;
use stopwatch::;
fn fid(num: u64) -> u64 ",num);
println!("耗時: {}ms", sw.elapsed_ms());
js**:
function fid(n) {
if (n == 0) return 0;
if (n == 1) return 1;
return fid(n-1) + fid(n-2)
fib(45)
你期待的結果是什麼?實際看到的錯誤資訊又是什麼?
按理來說rust的速度應該比js快很多才對吧?希望大佬們能指點一下我是不是rust****用錯了,或者是有什麼地方可以優化的,謝謝.
為什麼要學習 Rust
為什麼學習 rust?於我而言,也許是兩年前當我邁入區塊鏈的第一腳時就已經決定了。選擇一門程式語言是很困難的,但卻又是重要的,其重要程度絕對不亞於你選擇在哪個地方買房子或者是你選擇在哪個地方扎根發展。因為當你開始學習一門程式語言的時候,不僅僅是你選擇了這麼程式語言,同時還選擇了程式語言相關的技術領域...
為什麼count 這麼慢?
當我們查詢一張資料量很大的表時,使用sql select count from t1 這條sql非常耗時。那麼當執行count 的時候發生了什麼呢?count 1 的sql執行計畫如下 count 的sql執行計畫如下 兩者執行計畫相同,所以速度相同。首先初始化時,執行一次精確的計數 select ...
為什麼count 這麼慢
不同count的用法 count 是乙個聚合函式,對於返回的結果集,一行行地判斷,如果count函式的引數不是null,累計值就加1,否則不加。最後返回累計值。count的用法有多種,分別是count count 字段 count 1 count 主鍵id 那麼多種用法,到底有什麼差別呢?當然,前提...