我编写了以下程序来比较python与c/fortran的速度.为了获得程序使用的时间,我使用了"time"命令.所有程序计算x x + y y + z*z的平方根,其中x,y,z是浮点数.我使用了根方,因为它是科学计算中最耗时的部分之一,我参与其中.
我得到以下几次:
fortran 0m29.9s //
c 0m20.7s //
python 30m10.8s
Run Code Online (Sandbox Code Playgroud)
根据我做的简单测试,我发现Python不推荐用于科学计算.但可能我的代码效率很低.
您是否认为我可以为这个简单的测试用例提高代码效率?
Fortran语言:
program root_square
implicit none
integer i,j
real x,y,z,r
x=1.0
y=2.0
z=3.0
do j=1,3000
do i=1,1000000
r=sqrt(x*x+y*y+z*z)
enddo
enddo
end program root_square
Run Code Online (Sandbox Code Playgroud)
C:
#include "stdio.h"
#include "math.h"
int main (void)
{
float x=1.0,y=2.0,z=3.0,r;
int i,j;
for(j=0; j<3000; j++){
for(i=0; i<1000000; i++) {
r=sqrt(x*x+y*y+z*z);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
蟒蛇:
#!/usr/bin/env python
from math import sqrt
x = 1.0
y = 2.0
z …Run Code Online (Sandbox Code Playgroud)