几种语言的执行速度比较

本文比较了Perl,Ruby,C++,C的执行速度的比较。精确的比较应该是针对不同的数据级别进行多次实验才能得出,本文只能得出一个印象中的执行时间

比较。

     程序是计算第N个素数,使用的算法类似于筛选法。分别为C++,C,Perl,和Ruby的代码(CSDN中插入代码中没有C和Perl)。int nPrime = 20000; int main() { vector vPrime; vPrime.push_back(1); vPrime.push_back(2); int i = 3; while (1) { bool bprim = true; for (int j = 1; j < vPrime.size(); ++j) { if (i % vPrime[j] == 0) { bprim = false; break; } } if (bprim) { vPrime.push_back(i); if (vPrime.size() == nPrime)break; } i = i + 2; } //copy(vPrime.begin(), vPrime.end(), ostream_iterator(cout, " ")); //cout<

以下是执行时间的对比:

C:

   real 0m3.111s

   user 0m3.032s

    sys 0m0.004s

C++:

   real 0m7.064s

   user 0m6.980s

    sys 0m0.000s

Perl 5.10.0:

   real 2m56.257s

   user 2m52.227s

    sys 0m0.228s

Ruby 1.8.7:

   real 7m17.123s

   user 5m58.746s

    sys 1m13.897s

   由此可以C++和Perl的执行速度大概在20倍左右。

   C++和Ruby的执行速度大概在60倍左右。

   而C是最快的。

   当然,在这个比较中,各个代码还有一些改进的空间(如C++中可以先为vector reserve一段空间,或在这里根本不需要动态增长等)。

   而且,Perl和Ruby是包含了编译时间在里面的(因为代码量较少,因此省略掉了)。但是也能在数量级上反应代码执行的速度。

   另外,个人是比较喜欢Ruby的,它具有一般动态语言的特点,而且代码比Perl要容易理解,比Perl和Python要更加纯粹的面向对象,据说其已经

   摆脱了最慢的动态语言的标签,不知道什么时候能再快一些。

 

 

你可能感兴趣的:(几种语言的执行速度比较)