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;
}
相关推荐
IT_陈寒5 小时前
React的useEffect把我坑惨了,这些闭包陷阱真要命
前端·人工智能·后端
前端之虎陈随易5 小时前
有生之年系列,Nodejs进程管理pm2 v7.0发布
前端·typescript·npm·node.js
ayqy贾杰6 小时前
Cursor SDK发布!开发者可直接搬走其内核
前端·vue.js·面试
椰猫子6 小时前
SpringMVC(SpringMVC简介、请求与响应(请求映射路径、请求参数、日期类型参数传递、响应json数据))
java·前端·数据库
love530love6 小时前
如何在 Google Chrome 中强制开启 Gemini AI 侧边栏(完整图文教程)
前端·人工智能·chrome·windows
光影少年6 小时前
对typescript开发框架的理解?
前端·javascript·typescript
跨境数据猎手6 小时前
反向海淘代购系统:1688 / 淘宝自动代采 + API 同步(附可用源码)
前端
lUie INGA6 小时前
Go-Gin Web 框架完整教程
前端·golang·gin
a1117766 小时前
“像风之翼“无人机巡检平台仪表盘
前端·javascript·开源·html·无人机
李白的天不白6 小时前
vue 数据格式问题
前端·vue.js·windows