NodeJS和C++的性能比较(转)
原文地址: 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++的性能比较(转)的更多相关文章
- nodejs进程线程优化性能
1. node.js 单线程的特点 node.js 以异步非阻塞单线程,作为其执行速度的保障.什么是非阻塞单线程? 举一个现实生活中的例子,我去巢大食堂打饭,我选择了A套餐,然后工作人员区为我配餐,我 ...
- vertx.io 与nodejs 一个简单的性能比较
vertx.io 与node 都是可以进行js运行的一个引擎,但是vertx 支持的语言相对于node 多,可以查看官网.今天下网上查询相关的信息 时来了解到vertx.io 性能比node 好,于是 ...
- NodeJS 各websocket框架性能分析
For a current project at WhoScored, I needed to learn JavaScript, Node.js and WebSocket channel, aft ...
- 玩转nodeJS系列:使用cluster创建nodejs单机多核集群(多进程)
前言: nodejs提供了cluster集群(支持端口共享的多进程),cluster基于child_process,process二次封装,方便我们使用该功能实现单机nodejs的web集群. 1.c ...
- nodejs 简单的搭建一个服务器
前言: nodejs 主要是后台语言 node 是在终端运行的,所以他可以进行 dos 命令 模块 自定义 JavaScript 是前台语言 nodejs 是 也是使用我们的 JavaScript ...
- 聚光灯下的熊猫TV技术架构演进
2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...
- 基于Reactjs实现webapp(加精)
git原文链接:https://github.com/my-fe/wiki/issues/1 由于最近的reactjs实在太火,而且距离第一版已经快2年的时间了,已经相对稳定和成熟了,基于这两个前提下 ...
- Node基础知识点--学习笔记(一)
一:建立http服务器: 在D盘建立一个文件夹node,放入app.js,代码如下: var http = require('http'); http.createServer(function(re ...
- 【熊猫TV】《程序员》:聚光灯下的熊猫TV技术架构演进
2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...
随机推荐
- mac删除顽固图标
cd /Users/shelley/Library/Application\ Support/Dock cp 10CCA448-0975-41DE-B47A-8E89FD634227.db 10 ...
- mysql 5.7 内存使用监控
5.7 中的performance_schema 已经有能力监控mysql 的内存使用情况了,对于这一点也是要通过instrument 来实现的,由于内存这一块没有对应的consumer 所以只要 配 ...
- 感知机(perceptron)
二类分类的线性分类模型,属于判别模型,利用梯度下降法对损失函数进行极小化求得感知机模型分为原始形式和对偶形式,是神经网络和支持向量机的基础 由输入控件到输出控件的如下函数: f(x)=sign(W.X ...
- poj3294 --Life Forms
Life Forms Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 12483 Accepted: 3501 Descr ...
- 《Programming WPF》翻译 第7章 6.视频和3-D
原文:<Programming WPF>翻译 第7章 6.视频和3-D 虽然详细地讨论视频和3-D超越了这本书的范围,但是获得这些特征的支持是值得的. 视频由MediaElement类型支 ...
- htpasswd.cgi 网页远程修改gerrit ht 认证的密码文件
在搭建gerrit系统时,一般都会采用apache的.htacces 认证方法 但trac本身并不提供修改密码的功能,修改密码只能通过htpasswd/htpasswd2命令来进行,这的确是一件相当不 ...
- BLOB二进制对象(blob.c/h)
BLOB二进制对象(blob.c/h) 数据结构 struct blob_attr { uint32_t id_len; /** 高1位为extend标志,高7位存储id, * 低24位存储data的 ...
- UML--建模
建模公式 这种精华的东西,一定是值得研读和实践的! myself:人,事,物,规则. 人,业务主角.业务工人.参与者.如果应用到教务系统中,就是管理员,主任,老师的关系. 事,业务用例,系统用例. 物 ...
- 【转】20个Java 代码生成器
From: http://www.cnblogs.com/skyme/archive/2011/12/22/2297592.html 1.1 CodeSmith 一款人气很旺国外的基于模板的dotne ...
- 第05讲- DDMS中logcat的使用
第05讲 DDMS中logcat的使用 1.DDMS DDMS 的全称是Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务.DDM ...