Python性能提升

时间:2016-10-08 16:14:36

标签: python performance

我编写了一个python脚本,将使用不同的输入启动此脚本10000次,我注意到在实际结构中需要相当长的时间:

def MCMC(DepT,Dur,Dep,Arr):    
#Get data from list
with open('GaR5.txt', 'r') as searchfile:
    for line in searchfile:
        if Dep in line:
            DepTZ=float(line.split('\t')[2])
            DepRat=float(line.split('\t')[3])
        if Arr in line:
            ArrTZ=float(line.split('\t')[2])
            ArrRat=float(line.split('\t')[3])
    tZ=DepTZ-ArrTZ
    from numpy import sin
    import math
    from scipy import integrate as intg
    def CalcJetlg(x):
          return(((intg.quad(lambda z: sin(z * math.pi / 8 + (-math.pi/2 -    12 * math.pi / 16)), x, x+Dur))[0]))    
         #[0] true integral, [1] Fresnel sine signal
    iT=(round(float(1-(CalcJetlg(DepTime)+(-5.1))/(-10.2)),2))
    oT=(round(float(1-(CalcJetlg(DepTime+tZ)+(-5.1))/(-10.2)),2))    
    if(TzDiff<0):
        resR=(iT*0.8+oT*0.2)
    else:
        resR=(1-(iT*0.8+oT*0.2))    
    APRat=((1-(DepRat/119))+(1-(ArrRat/119)))/2
    return(round(float(resR*0.8+APRat*0.2),2))

import sys
DepT=float(sys.argv[1])
Dur=float(sys.argv[2])
Dep=str(sys.argv[3])
Arr=str(sys.argv[4])
print(MCMC(DepT,Dur,Dep,Arr))

GaR5.txt看起来像这样:

1   GKA 10.0    120
2   MAG 10.0    120
3   HGU 10.0    120
4   LAE 10.0    120
5   POM 10.0    120
6   WWK 10.0    120
7   UAK -3.0    120
8   GOH -3.0    120
9   SFJ -3.0    120
10  THU -4.0    120

我会在windows shell中运行这样的脚本 python MCMC.py

我注意到这样的执行需要1秒钟,当我在Spyder iPython控制台启动它只需0.02秒时,为了加快这个脚本,这可能是一个好方法吗?

我发现主要的事情是从shell启动它比在iPython中运行它需要更长的时间,是否有更快的方式来运行脚本?它必须通过shell运行,给出我有的其他编码

0 个答案:

没有答案