在《C++的速度比Java快2.1%:来自计算100万以内质数的实验数据对比》这篇文中比较了C++和Java的速度,现在接着用同样的办法通过算1000000以内的质数来比较python和fortran的速度。

Python代码

import time

import datetime

t =time.time()

#print(int(round(t * 1000)))

i=2

j=2

for i inrange(2,1000000):

for j in range(2,(int(i/j)+2)    ):

#print(i,"*",j,(int(i/j)+1)        )

if(i%j==0):

#print(i,j,"             **")

break

# if(j >int (i/j)):

#print(i)

t1 =time.time()

print(int(round(t1 * 1000))-int(round(t * 1000)) ,"********* " )

#########################################

!!!!!!!!!!!!!!!!!!!!!!!!!

fortran代码

program main

implicit none

integer::i,j

Real :: r1 = 0.0

Real :: r2 = 0.0

Real :: r3 = 0.0

Real :: r4 = 0.0

Real :: ra1 = 0.0

Real :: ra2 = 0.0

Real :: ra3 = 0.0

Real :: ra4 = 0.0

character(8)::date

character(10)::time

character(5)::zone

integer,dimension(8)::values

character(8)::datea

character(10)::timea

character(5)::zonea

integer,dimension(8)::valuesa

!using keywordarguments

calldate_and_time(date,time,zone,values)

calldate_and_time(DATE=date,ZONE=zone)

calldate_and_time(TIME=time)

calldate_and_time(VALUES=values)

print '(a,2x,a,2x,a)',date,time,zone

print '(8i5))',values

outer: do i=2,1000000

inner:do j=2, i/j

!print "(3i5)",  i/j ,i,j

if( j*(i/j)==i)then

exit inner

end if

end do  inner

if(j > (i/j)) then

print "(3i10)",i

endif

end do outer

calldate_and_time(datea,timea,zonea,valuesa)

calldate_and_time(DATE=datea,ZONE=zonea)

calldate_and_time(TIME=timea)

calldate_and_time(VALUES=valuesa)

Read(time(1:2) , * ) r1

Read( time(3:4) , * ) r2

Read( time(5:6) , * ) r3

Read( time(8:10) , * ) r4

Read( timea(1:2) , * ) ra1

Read( timea(3:4) , * ) ra2

Read( timea(5:6) , * ) ra3

Read( timea(8:10) , * ) ra4

print '(a,2x,a,2x,a)',datea,timea,zonea

!print '(8i5)',valuesa

print '(f11.3)', (ra1*60*60*1000+ra2*60*1000+ra3*1000+ra4 )-(r1*60*60*1000+ r2*60*1000+r3*1000+r4)

! print'(f11.3)', ra1,ra2,ra3,ra4

end program

运算过程基本是一样的,因为python的冒号后面必须有东西所以把# if(j >int (i/j)):

#print(i) 这两句话都注释掉了,实际上python的程序比其他的程序还少了一步,fortran的时间计算因为不能直接的得到ms的时间还要转化一下,这一步慢了一点。

c++(不显示中间过程ms) 显示过程ms java(不显示中间过程ms) 显示过程ms python(不显示中间过程ms) fortran(不显示中间过程ms) 显示过程ms
967 58228 844 1624 4625593 100717 109126
738 57315 549 1716 4492283 102039 109546
736 56691 929 1833 5211503 101634 108775
784 57116 862 1884 * 100651 122592
768 56679 866 1801 * 101487 121870
888 81498 922 1801 * 101261 121646
713 79003 860 1792 * 101379 120226
881 79574 833 1891 * 100606 110631
962 79737 851 1806 * 106303 108145
875 78760 916 1894 * 94476 108237
729 78189 786 1807  
846 82891 735 1777  
860 79148 785 1745
870 76569 878 1737
788 79128 754 1770
779 72847 828 1895
731 74039 852 1766
656 72004 919 1863
835 76723 858 1979  
839 77570 857 1882
840 70929 924 1747  
833 73277 952 1861
900 73976 659 1765
747 73794 783 1830
795 73472 813 1764
849 70584 769 1784
832 72319 834 1740
809 71475 892 1810
834 72823 818 1808
766 71847 834 1684
平均
815 72606.833 832.06667 1801.8667 4776459.7 101055.3 114079.4

因为速度差距过于悬殊fortran只算了10次,python算了3次,python也没有测量控制台该显示所有中间过程的时间

得到数据在控制台不显示中间过程的情况下

C++     java     fortran        python

815     832     101055     4776459

1         1.02     123          5860

也就是C++的计算速度是java的1.02倍,是fortran的123倍,是python的5860倍

控制台显示中间过程的情况的速度比较

Java      c++          fortran      python

1801    72606   114079       4776459

1             40            63                2652

Java控制台显示速度是c++的40倍,是fortran的63倍,至少是python的2652倍

C++,Java,Python,Fortran到底哪个更快?相关推荐

  1. CUDA,C++,Java,Python,Fortran运行速度比较

    通过计算100万以内素数的运行时间比较这5种语言的运行速度. 每种语言运行30次,取平均值.由于python和fortran的运行速度和Java和C++运行差距过大,python只计算了3次,Fort ...

  2. 转载:JAVA获取时间戳,哪个更快

    转载:http://hi.baidu.com/suofang/item/96629a060a44c119eafe38cc 目前获取毫秒值大概有下面三种方法 Java代码   //方法 一    Sys ...

  3. JAVA获取时间戳,哪个更快

    目前获取毫秒值大概有下面三种方法 //方法 一 System.currentTimeMillis(); //方法 二 Calendar.getInstance().getTimeInMillis(); ...

  4. 64位和32位有什么区别?到底哪个更快?——硬核科普

    原文链接:联想商用服务----64位和32位有什么区别?到底哪个更快?--硬核科普 32位和64位到底指什么? 下载 Windows 操作系统,会区分 X 64 和 X 86 版本(一般 X 86 是 ...

  5. java和php哪个运行更快,java和php哪个入门快?-php教程

    跟着互联网的高速倒退,愈来愈多的人开端抉择处置较量争论机行业,而想要处置相干工作的话,理解相干编程言语也是必备的一项技艺.可是有不少冤家正在抉择要学习的编程言语时就被难到了,想晓得哪一种言语入门更快, ...

  6. 用 PyPy 让你的 Python 代码运行得更快!

    Python是开发人员中最常用的编程语言之一,但它有一定的局限性.例如,对于某些应用程序而言,它的运行速度可能比其它语言低100倍.这就是为什么当Python的运行速度成为用户瓶颈后,许多公司会用另一 ...

  7. while (true) 和 for (;;) 到底哪个更快?

    作者 | RednaxelaFX 来源 | https://zhihu.com/question/52311366/answer/130090347 在JDK8u的jdk项目下做个很粗略的搜索: my ...

  8. python分析excel数据-对照Excel使用Python进行数据分析,更快掌握

    Excel和Python,作为数据分析的主流工具,在从效率提升到数据商业化的整个过程中,都起到了重要作用.不管是在Excel中通过鼠标点选实现,亦或是利用Python通过代码实现,数据分析中的很多基础 ...

  9. 有了 for (;;) 为什么还需要 while (true) ? 到底哪个更快?

    今日推荐 这 9 个 Java 开源项目 yyds,你知道几个?阿里技术专家推荐的20本书,免费送!K8S 部署 SpringBoot 项目(一篇够用)妙用Java 8中的 Function接口 消灭 ...

最新文章

  1. 内江将被打造成四川物联网西部副中心
  2. Unity 游戏开发技巧集锦之创建自发光材质
  3. JDBC PreparedStatement 实现原理【推荐阅读】
  4. python中assert_在Python中带有示例的assert关键字
  5. 52个有效方法(1) - 了解Objective-C语言的起源
  6. 《java学习二》jvm性能优化-----认识jvm
  7. 19、SPI 和 SST25VF016B
  8. mysql表名命名规范_数据库表名的命名规范
  9. MPUSH消息推送服务器搭建,MPUSH消息推送服務器搭建
  10. 第十章--聚类分析 第5组 小组作业
  11. 控制系统matlab计算及仿真,控制系统MATLAB计算及仿真实训
  12. vue 一个公式 编辑器 组件
  13. Android AndroidManifest.xml文件权限出现“Permission is only granted to system apps”的解决办法
  14. 大学计算机课桌面弄毛玻璃,高校换上新课桌,同学表示“世界观被颠覆”,网友:黑科技的诞生...
  15. 国家计算机职业技能鉴定4级考试内容大全
  16. .gitignore文件 —— git忽略文件
  17. 计算机等级考试二级ppt,高校计算机等级考试二级C.ppt
  18. 在Anaconda3下安装tensorflow-gpu库的经验之谈
  19. 物流配送系统源码,货物运送行进轨迹“一清二楚”
  20. 学习MySQL必须了解的13个关键字,你get了吗?

热门文章

  1. 通俗易懂讲解JavaScript深拷贝和浅拷贝
  2. 管与c++中容量的重新分配问题
  3. 打包后放在服务器上二级目录找不到解决办法
  4. ping不通www.baidu.com,但可以访问www.baidu.com网页
  5. chardet坑——比蜗牛还慢
  6. JIRA 6.3.6版本部署
  7. Android实现点击事件的4种方式
  8. 自定义TabHost,TabWidget样式 .
  9. 锋利的JQuery学习笔记01
  10. C# WMI 编程实例2则