前段时间做了个实验,测试了1E9次的空循环在NodeJS和C++中的执行用时。于是我和小伙伴们瞬间就惊呆了,NodeJS的性能是要逆天吗?虽然我一直都在抱怨v8引擎在各种犄角旮旯的优化做的太恶心了,但无论如何它的基本性能高是不可否定的。
#include
#include
int main(void){
int t=clock();
for(int i=0;i<1E9;i++);
printf("%d\n",clock()-t);
return 0;
}
console.time("test");
for(var i=0;i<1E9;i++);
console.timeEnd("test");
NodeJS是要逆天?速度比C++还快?得到这个结果只是因为C++的编译没有开启最大优化而已。开启最大优化编译之后可以得到
所以C++比NodeJS快是肯定的,但是从这个结果来看并没快多少。很多人就持疑了,测试的循环体中只有一个空语句,是v8引擎把它优化掉了吧?但要是优化掉了,那一千多毫秒的时间是怎么跑出来的呢?也许这个测试不能说明问题,那我们就来做个实际点的测试,对一个长度为1E6的整型数组排序。这里偷了个懒,C++直接用了C标准库中的qsort函数,JavaScript用了上一篇中的排序算法。
#include
#include
#include
#define L 1E6
int main(void){
int *a=new int[L];
for(int i=0;iint{
return *(int*)a-*(int*)b;
});
printf("%d\n",clock()-t);
delete a;
return 0;
}
function sort(a){
var s=[0,a.length-1],p=0,l,r,i,j,v;
while(s.length>p){
l=i=s[p++],r=j=s[p++],v=a[i];
while(i=v&&il)s.push(l,i-1);
if(i+1
C++是比NodeJS快,但性能比较通常是用耗时的数量级来衡量的,这两个结果取对数之后基本没什么差异,C++真心没比NodeJS快多少。所以,比起其它一大堆Web编程语言,NodeJS的性能还是非常有优势的。
本文来源于广州网站建设公司与广州网站设计制作公司-广帆互动广州公司!
日期:2015年05月20日
标签: 广州网站设计公司 、 广州网站设计 、 广州网站建设公司 、 广州网站建设 、 广州网站制作公司 、 广州网站制作 、 高端网站设计 、 高端网站建设 、 广州高端网站设计 、 广州高端网站建设