全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 经管代码库
2193 2
2015-03-06

最近做了个验证直观的测试,分两部分。(一)

      对于C/CPP,两者编写繁琐,前者非OOPL,后者深不可测;比较务实的是学java。

      对于R使用者(估计matlab也类似),在遇到数值迭代、循环嵌套等情形时,借助rJava可以将这些任务交给java做,或在java中调用R完成统计模型。

     为了对比,这里测试了java和R递归计算fibonacci(40)的速度。

      已经有好多测试帖子了,比如这里:http://fengmk2.cnpmjs.org/blog/2 ... n-php-ruby-lua.html

      大体都肯定了jvm的优化力。但对R测试一直没有。先贴源码(写得很简陋):






比较运算速度第一部分




for java

复制代码


for R


复制代码



结果




for java:

102334155

程序运行时间: 1390ms

for R:

user     system  elapsed

539.28    0.16   542.04




注意:

      1.R的运行时间单位是sec,所以速度差很多(我几近睡着了)。

      2.都是递归算法的比较,尽管存在非递归算法,因此看到有些网友的测试“不公平”。关于空间和时间的厚此薄彼,见http://www.javacodegeeks.com/201 ... g-introduction.html

      3.由于计算机性能不同,请别拿这里的结果去和http://fengmk2.cnpmjs.org/blog/2 ... n-php-ruby-lua.html作比较——我的电脑很破。






(二)比较运算速度第二部分




(一)比较了R和java,java要显著快于R。那么从R中调用java耗的时间是怎样呢?


直观上,可以肯定Rjava慢于java,快于R,下面验证一下


复制代码


发现还是很快的,不比java慢多少,那么换个复杂的例子Fibonacci(50)。不要小看增加这10个数,运算时间大增。



rjava的绩效:

fib$filaBmk()

[1] "The result is 12586269025. The running time is 176640ms"



java的绩效:

12586269025

程序运行时间: 163843ms


差别是有,但完全可以接受。R就不做了,估计睡一觉醒来了都没完。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-10-20 13:58:12
感谢楼主分享,很精彩的贴,谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-10-20 17:40:22
谢谢分享。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群