日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++,Java,Python,Fortran到底哪个更快?

發布時間:2025/4/5 c/c++ 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++,Java,Python,Fortran到底哪个更快? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在《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)顯示過程msjava(不顯示中間過程ms)顯示過程mspython(不顯示中間過程ms)fortran(不顯示中間過程ms)顯示過程ms
9675822884416244625593100717109126
7385731554917164492283102039109546
7365669192918335211503101634108775
784571168621884*100651122592
768566798661801*101487121870
888814989221801*101261121646
713790038601792*101379120226
881795748331891*100606110631
962797378511806*106303108145
875787609161894*94476108237
729781897861807?
846828917351777?
860791487851745
870765698781737
788791287541770
779728478281895
731740398521766
656720049191863
835767238581979?
839775708571882
840709299241747?
833732779521861
900739766591765
747737947831830
795734728131764
849705847691784
832723198341740
809714758921810
834728238181808
766718478341684
平均
81572606.833832.066671801.86674776459.7101055.3114079.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到底哪个更快?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。