原文地址: http://www.web-tinker.com/article/20374.html

  前段时间做了个实验,测试了1E9次的空循环在NodeJS和C++中的执行用时。于是我和小伙伴们瞬间就惊呆了,NodeJS的性能是要逆天吗?虽然我一直都在抱怨v8引擎在各种犄角旮旯的优化做的太恶心了,但无论如何它的基本性能高是不可否定的。
;
}

;i<1E9;i++);
console.timeEnd("test");


  NodeJS是要逆天?速度比C++还快?得到这个结果只是因为C++的编译没有开启最大优化而已。开启最大优化编译之后可以得到

  所以C++比NodeJS快是肯定的,但是从这个结果来看并没快多少。很多人就持疑了,测试的循环体中只有一个空语句,是v8引擎把它优化掉了吧?但
要是优化掉了,那一千多毫秒的时间是怎么跑出来的呢?也许这个测试不能说明问题,那我们就来做个实际点的测试,对一个长度为1E6的整型数组排序。这里偷
了个懒,C++直接用了C标准库中的qsort函数,JavaScript用了上一篇中的排序算法。
;
}

,a.length-],p=,l,r,i,j,v;
  >l)s.push(l,i-);
    <r)s.push(i+,r);
  };
};
,s=[];i<);
t=new Date;
sort(s);
console.log(new Date-t);


  C++是比NodeJS快,但性能比较通常是用耗时的数量级来衡量的,这两个结果取对数之后基本没什么差异,C++真心没比NodeJS快多少。所以,比起其它一大堆Web编程语言,NodeJS的性能还是非常有优势的。

NodeJS和C++的性能比较(转)的更多相关文章

  1. nodejs进程线程优化性能

    1. node.js 单线程的特点 node.js 以异步非阻塞单线程,作为其执行速度的保障.什么是非阻塞单线程? 举一个现实生活中的例子,我去巢大食堂打饭,我选择了A套餐,然后工作人员区为我配餐,我 ...

  2. vertx.io 与nodejs 一个简单的性能比较

    vertx.io 与node 都是可以进行js运行的一个引擎,但是vertx 支持的语言相对于node 多,可以查看官网.今天下网上查询相关的信息 时来了解到vertx.io 性能比node 好,于是 ...

  3. NodeJS 各websocket框架性能分析

    For a current project at WhoScored, I needed to learn JavaScript, Node.js and WebSocket channel, aft ...

  4. 玩转nodeJS系列:使用cluster创建nodejs单机多核集群(多进程)

    前言: nodejs提供了cluster集群(支持端口共享的多进程),cluster基于child_process,process二次封装,方便我们使用该功能实现单机nodejs的web集群. 1.c ...

  5. nodejs 简单的搭建一个服务器

    前言: nodejs 主要是后台语言  node 是在终端运行的,所以他可以进行 dos 命令 模块 自定义 JavaScript 是前台语言 nodejs 是 也是使用我们的 JavaScript ...

  6. 聚光灯下的熊猫TV技术架构演进

    2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...

  7. 基于Reactjs实现webapp(加精)

    git原文链接:https://github.com/my-fe/wiki/issues/1 由于最近的reactjs实在太火,而且距离第一版已经快2年的时间了,已经相对稳定和成熟了,基于这两个前提下 ...

  8. Node基础知识点--学习笔记(一)

    一:建立http服务器: 在D盘建立一个文件夹node,放入app.js,代码如下: var http = require('http'); http.createServer(function(re ...

  9. 【熊猫TV】《程序员》:聚光灯下的熊猫TV技术架构演进

    2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...

随机推荐

  1. OSharp 学习(一)

    OSharp3.0 由郭明峰组织开发,已经相对比较完整,从底层代码开始阅读难度比较大. 故采用自上而下的方式,使用到的时候再完善相关功能.希望通过此教程能够找到志同道合的人. 注:请勿抄袭 请参看OS ...

  2. CloudStack添加新的API注意事项

    1.***Cmd上面的@APICommand里的responseObject关联对于的Response: 2.在tomcatconf/command.properties.in添加新API的权限: 3 ...

  3. 转载:常见EXE文件反编译工具

    PE Explorer V1.99 R5 绿色汉化特别版_强大的可视化汉化集成工具 功能极为强大的可视化汉化集成工具,可直接浏览.修改软件资源,包括菜单.对话框.字符串表等: 另外,还具备有 W32D ...

  4. 唯品会安卓版app分析

    .................................................................................................... ...

  5. Postgres的用户认证

    我们先来讲讲postgresql的用户认证吧. 我想我们有必要明白以下几个问题: 第一.postgresql的用户和操作系统的用户没有任何直接的的关系.虽然在postgaresql的初始安装中,它会有 ...

  6. Uubntu14.04 LST安装NodeJS

    1:从官网下载node.js源码http://nodejs.org/download/ 当前最新版为node-v0.10.33 2:安装 $ tar zxvf node-v0.10.33.tar.gz ...

  7. 2015北大夏令营day1 B:An Idea of Mr. A

    题意:给定一个范围l,r计算i,j(i<j)属于这个范围内的gcd(2^(2^i)+1,2^(2^j)+1)的总和. 思路:费马数的应用,让我惊呆的是当年居然有123个人会做,我tm毛都不会.. ...

  8. C++ crash 堆栈信息获取(三篇文章)

    最近在做程序异常时堆栈信息获取相关工作,上一篇文章成功的在程序creash时写下了dump文件,而有些情况写dump文件是 不可以的,比如在jni开发时,C++只做底层处理,而整个项目是android ...

  9. pl/sql执行动态sql

    SQL> declare             msql varchar2(200);    begin    loop    msql := 'select * from bfw_test' ...

  10. 福建省队集训被虐记——DAY2

    唉--第二天依然被虐--但是比第一天好一点--我必须负责任的指出:志灿大神出的题比柯黑的不知道靠谱到哪里去了--柯黑出的简直不可做 但是被虐的命运是无法改变的--求各位神犇别D我 黄巨大真是强啊,不愧 ...