python、java、c、go执⾏速度对⽐java、c、python、go的运算速度对⽐
python版本
NUM =111181111# 这是素数, 因此在循环结束前不会退出
def is_prime(n):
i =2
while i < n:
if n % i ==0:
return Falsego和java后端开发劣势
i +=1
return True
if __name__ =='__main__':
is_prime(NUM)
测试的⽅式是使⽤linux的time命令,时间统⼀⽤total统计,⽐如统计go语⾔执⾏时间的命令如下:
➜ Desktop time ./speed
./speed 1.01s user 0.02s system 97% cpu 1.048 total
统计java如下:
➜ src git:(master)✗ time java eg.Speed
java eg.Speed 1.14s user 0.05s system 95% cpu 1.256 total
其他⼏个代码的版本如下:
java版本
package eg;
public class Speed {
static final long NUM =111181111L;
public boolean isPrime(long n){
long i =2L;
while(i < n){
if(n % i ==0){
return false;
}
i +=1;
}
return true;
}
public static void main(String[] args){
Speed s =new Speed();
s.isPrime(NUM);
}
}
c版本
int is_prime(long n){
long i =2L;
while(i < n){
if(n % i ==0){
return0;
}
i +=1;
}
return1;
}
int main(){
const long NUM =111181111L;
is_prime(NUM);
}
go版本
package main
func is_prime(n int)bool{
/* 声明局部变量 */
var i =2
for i < n {
if n % i ==0{
return false
}
i++
}
return true
}
func main(){
const NUM int=111181111
is_prime(NUM)
}
最终结果统计如下:
语⾔执⾏时间(total)秒
python 2.7.1311.256
python 3.7.011.462
java 1.8.0_121 HotSpot 1.256
c (Apple LLVM version 10.0.0) 1.069
go 1.8.1 1.048
结论
go和c最快,java略慢,python2与python3速度差不多,但⽐前⾯三种语⾔慢10倍。原因我也查了⼀下,
简单来说是因为2点:
1.Python等动态类型语⾔,在执⾏每⼀个简单的操作时都需要⼤量的指令才能完成(包括做类型判断,不同类型出各⾃的⽅法,执⾏不同的指令);
2. C语⾔和Python的数据结构和算法不同.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论