JS执行速度似乎并不比Swift或者C语言慢

测试结果

粗略测试耗时结果如下,严格测试可参考:

  1. 综合内存、执行耗时的可视化排名goodmanwen.github.io/Programming...
  2. 各个语言执行耗时等数据benchmarksgame-team.pages.debian.net/benchmarksg...
语言 100w次斐波拉契计算(n=30)耗时
nodejs 24 75ms
c 71ms
swift 5.9 119ms
chrome 134 35ms
  1. js快得离谱,怀疑引擎有优化;
  2. swift很慢,是因为Int.random很慢,去掉Int.random后与c语言耗时接近

测试代码

JS

js 复制代码
function fib(n){
    let n_0=0;
    let n_1=1;
    for(let i=1;i<=n;i++) {
        let tmp = n_0+n_1;
        n_0=n_1;
        n_1=tmp;
    }
    return n_1;
}

let s = Date.now()

let n=0;

console.log("fib 30 = ",fib(30));
console.log("fib 29 = ",fib(29));

for(let i=0;i<1000000;i++) {
    let num = Math.floor(Math.random()*3);
    
    n=n+fib(30)-1346269+num;
}

console.log("n=",n," time=", Date.now()-s);

Swift

swift 复制代码
import Dispatch

func fib(n:Int)->Int{
    var n_0=0
    var n_1=1
    for _ in 2...n {
        let tmp = n_0+n_1
        n_0=n_1
        n_1=tmp
    }
    return n_1
}

print("fib 30 = ",fib(n:30));

var s=DispatchTime.now()

var n=0;

for _ in 0...1000000 {
    n=n+fib(n:30)+Int.random(in: 0...3)-1346269
}

print("n=",n," time=",(DispatchTime.now().uptimeNanoseconds-s.uptimeNanoseconds)/1000/1000)

C

c 复制代码
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int fib(int n){
    int n_0=0;
    int n_1=1;
    for(int i=1;i<=n;i++) {
        int tmp = n_0+n_1;
        n_0=n_1;
        n_1=tmp;
    }
    return n_1;
}

int main(){
    srand(time(NULL)); 
    struct timespec s,e;
    timespec_get(&s, TIME_UTC);

int n=0;

printf("fib 30 = %d\n",fib(30));

for(int i=0;i<1000000;i++) {
    n=n+fib(30) + (rand() % 3) -1346269;
}

timespec_get(&e, TIME_UTC);

printf("n=%d, time=%ldms\n",n,(e.tv_nsec-s.tv_nsec)/1000/1000);
return 0;
}
相关推荐
刘发财2 小时前
弃用html2pdf.js,这个html转pdf方案能力是它的几十倍
前端·javascript·github
牛奶5 小时前
2026年大模型怎么选?前端人实用对比
前端·人工智能·ai编程
牛奶5 小时前
前端人为什么要学AI?
前端·人工智能·ai编程
Kagol7 小时前
🎉OpenTiny NEXT-SDK 重磅发布:四步把你的前端应用变成智能应用!
前端·开源·agent
GIS之路8 小时前
ArcGIS Pro 中的 notebook 初识
前端
JavaGuide9 小时前
7 道 RAG 基础概念知识点/面试题总结
前端·后端
ssshooter9 小时前
看完就懂 useSyncExternalStore
前端·javascript·react.js
格砸10 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
Live0000010 小时前
在鸿蒙中使用 Repeat 渲染嵌套列表,修改内层列表的一个元素,页面不会更新
前端·javascript·react native
柳杉10 小时前
使用Ai从零开发智慧水利态势感知大屏(开源)
前端·javascript·数据可视化