各种语言速度之比,实验验证Cgojuliajavapythonoctave
一、Julia在Linux上的運(yùn)行時(shí)間
1.調(diào)用python包來(lái)實(shí)現(xiàn)計(jì)時(shí)
在PyCall擴(kuò)展包中,模仿Python的import語(yǔ)句,提供了一個(gè)可以導(dǎo)入Python模塊的@pyimport宏。并且,為能在Julia中使用模塊內(nèi)的函數(shù)和常量做了封裝,以及支持在Julia與Python間的自動(dòng)類型轉(zhuǎn)換。
1.1 安裝PyCall
打開Julia,輸入:
ENV["PYTHON"]="python.exe" using Pkg Pkg.add("PyCall")1.2 python包程序
test02.jl
using Pkg using PyCall @pyimport datetimet1 = datetime.datetime.now() for i in 1:100000math.sin(2*pi*500*i) end t2 = datetime.datetime.now()println((t2 - t1))1.3 結(jié)果顯示
調(diào)用python包,運(yùn)行十萬(wàn)次花費(fèi)時(shí)間為:
2245 milliseconds2.安裝Julia自帶的time
2.1 julia程序
new.jl
t1 =time()for i in 1:100000sin(2*pi*500*i)end t2 =time() println((t2-t1)*1000)2.2 結(jié)果顯示
都是以毫妙為單位。
運(yùn)行十萬(wàn)次花費(fèi)時(shí)間為:
20.923852920532227運(yùn)行百萬(wàn)次花費(fèi)時(shí)間為:
60.99200248718262運(yùn)行千萬(wàn)次花費(fèi)時(shí)間為:
463.2608890533447二、C在Linux上的運(yùn)行時(shí)間
1.c語(yǔ)言代碼
#include<stdio.h> #include<math.h> #include<stdlib.h> #include<time.h> #define PI 3.1415926535 void main() {int begintime,endtime;int i=0;begintime=clock();for(i=0;i<10000000;i++){sin(2*PI*500*i);}endtime = clock();printf("\n\nqianWAN Running Time:%lfms\nms",((double)(endtime-begintime))); }2.結(jié)果顯示
都是以毫妙為單位。
運(yùn)行十萬(wàn)次花費(fèi)時(shí)間為:
0.000000運(yùn)行百萬(wàn)次花費(fèi)時(shí)間為:
0.000000運(yùn)行千萬(wàn)次花費(fèi)時(shí)間為:
0.000000
Windows結(jié)果:
三、Java在Linux上的運(yùn)行時(shí)間
1.Java代碼
public class Test01 {static void baiwan() {double PI=3.1415926535;int i=0;long start = System.currentTimeMillis();for(i=0;i<1000000;i++) {Math.sin(2*PI*500*i);}long end = System.currentTimeMillis();double useTime = (end - start);System.out.println("yiBaiWan Running Time:"+useTime+"ms");}static void qianwan() {double PI=3.1415926535;int i=0;long start = System.currentTimeMillis();for(i=0;i<10000000;i++) {Math.sin(2*PI*500*i);}long end = System.currentTimeMillis();double useTime = (end - start);System.out.println("yiQianWan Running Time: "+useTime+"ms");}static void shiwan() {double PI=3.1415926535;int i=0;long start = System.currentTimeMillis();for(i=0;i<100000;i++) {Math.sin(2*PI*500*i);}long end = System.currentTimeMillis();double useTime = (end - start);System.out.println("shiWan Running Time:"+useTime+"ms");}public static void main(String[] args){shiwan();baiwan();qianwan(); } }2.結(jié)果顯示
都是以毫妙為單位。
shiWan Running Time:50.0ms yiBaiWan Running Time:44.0ms yiQianWan Running Time: 2251.0ms
windows運(yùn)行時(shí)間:
四、python在Linux上的運(yùn)行時(shí)間
1.python代碼
import numpy as np import timedef shiwan():time_start = time.time()for i in range(1,100001):np.sin(2*np.pi*500*i)time_end=time.time()print(f"shiWan Running Time:{(time_end - time_start)*1000}ms")def baiwan():time_start = time.time()for i in range(1, 1000001):np.sin(2 * np.pi * 500 * i)time_end = time.time()print(f"baiWan Running Time:{(time_end - time_start)*1000}ms")def qianwan():time_start = time.time()for i in range(1, 10000001):np.sin(2 * np.pi * 500 * i)time_end = time.time()print(f"qianWan Running Time:{(time_end - time_start)*1000}ms")shiwan() baiwan() qianwan()2.結(jié)果顯示
shiWan Running Time:2240.0074005126953ms baiWan Running Time:9671.464920043945ms qianWan Running Time:25737.513303756714ms
windows結(jié)果:
五、octave在Linux上的運(yùn)行時(shí)間
1.octave代碼
tic; for i=1:10000000sin(2*pi*500*i); end toc; disp(['qianwan Running Time: ',num2str(toc)]);2.結(jié)果顯示
以秒為單位
shiwan Running Time: 11.469 baiwan Running Time: 15.229 qianwan Running Time: 95.125六、golang在Linux上的運(yùn)行時(shí)間
1.go代碼
package main //文件所在包mainimport ("fmt""math""time"//引入包fmt )func main() { //func是一個(gè)關(guān)鍵字,main是一個(gè)主函數(shù)start := time.Now()for i := 0.000000; i < 10000000.000000; i++ {var pi float64 = 3.1415926535math.Sin(2* pi*500*i)}cost := time.Since(start)fmt.Printf("qianWan Running Time[%s]", cost) }2.結(jié)果顯示
shiwan Running Time[1.333805ms] baiWan Running Time[13.395439ms] qianWan Running Time[134.776934ms]七、綜述
根據(jù)以下結(jié)果,可以得出運(yùn)行最快的語(yǔ)言是C語(yǔ)言,最慢的是octave
速度由快到慢的順序?yàn)?#xff1a;
C>go>julia>java>python>octave-
Julia運(yùn)行千萬(wàn)次花費(fèi)時(shí)間為:463.2608890533447ms
-
C運(yùn)行千萬(wàn)次花費(fèi)時(shí)間為:
0.000000ms
-
Java運(yùn)行千萬(wàn)次花費(fèi)時(shí)間為:
2251.0ms
-
python運(yùn)行千萬(wàn)次花費(fèi)時(shí)間為:
25737.513303756714ms
-
octave運(yùn)行千萬(wàn)次花費(fèi)時(shí)間為:
95.125*1000ms
-
go運(yùn)行千萬(wàn)次花費(fèi)時(shí)間為:
134.776934ms
總結(jié)
以上是生活随笔為你收集整理的各种语言速度之比,实验验证Cgojuliajavapythonoctave的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: -bash:XXX: command n
- 下一篇: 【ML】 李宏毅机器学习二:Logist