sure.
def mymain(): def LEstep(n): Emin=10**6 Emax=5*(10**10) Lemin=log10(Emin) Lemax=log10(Emax) stepE=(Lemax-Lemin)/n return (stepE, n, Lemin, Lemax) if __name__ == "__main__": import sys if len(sys.argv)<=1: stepENE, nex, Lemin, Lemax = LEstep(200) elif len(sys.argv)<=2: stepENE, nex, Lemin, Lemax = LEstep(int(sys.argv[1])) else: stepENE, nex, Lemin, Lemax = LEstep(int(sys.argv[1])) freq=float(sys.argv[2]) eel = list(range(nex)) eels = np.logspace(Lemin, Lemax, num=nex, endpoint=False) indpha = list(range(npha)) indobs = list(range(nobs)) rlc = c/(2*pi*freq) MYMAP1 = np.zeros([npha, nobs, nex], dtype=float) MYMAP2 = np.zeros([npha, nobs, nex], dtype=float) MYMAP3 = np.zeros([npha, nobs, nex], dtype=float) MYMAP4 = np.zeros([npha, nobs, nex], dtype=float) MYMAP5 = np.zeros([npha, nobs, nex], dtype=float) count=0 omegacliston = [] alpha = '60_' for my_line in open('datasm0_60_5s.dat'): myinternet = [] gmlis = [] print('reading the line', count, '/599378') my_parts = [float(i) for i in my_line.split()] phase = my_parts[4] zobs = my_parts[5] rho = my_parts[6] gammar1 = my_parts[7] gammar2 = my_parts[8] gammar3 = my_parts[9] gammar4 = my_parts[10] gammar5 = my_parts[11] gmlis.append(gammar1) gmlis.append(gammar2) gmlis.append(gammar3) gmlis.append(gammar4) gmlis.append(gammar5) i = int((phase-phamin)/stepPHA) j = int((zobs-obamin)/stepOB) for gammar in gmlis: omC = (1.5)*(gammar**3)*c/(rho*rlc) gig = omC*hcut/eVtoErg omegacliston.append(omC) for w in eel[:]: omega = (10**(w*stepENE+Lemin))*eVtoErg/hcut x = omega/omC kap = instruments.kappa(x) Iom = (1.732050808/c)*(e**2)*gammar*kap P = Iom*(c/(rho*rlc))/(2*pi) phps = P/(hcut*omega ) www = phps/(stepPHA*sin(zobs)*stepOB) myinternet.append(www) count = count + 1 oo = 0 for k in eel[:]: MYMAP1[i, j, k] = MYMAP1[i, j, k] + myinternet[oo] oo = oo + 1 for k in eel[:]: MYMAP2[i, j, k] = MYMAP2[i, j, k] + myinternet[oo] oo = oo + 1 for k in eel[:]: MYMAP3[i, j, k] = MYMAP3[i, j, k] + myinternet[oo] oo = oo + 1 for k in eel[:]: MYMAP4[i, j, k] = MYMAP4[i, j, k] + myinternet[oo] oo = oo + 1 for k in eel[:]: MYMAP5[i, j, k] = MYMAP5[i, j, k] + myinternet[oo] oo = oo + 1 BIGMAPS = [MYMAP1, MYMAP2, MYMAP3, MYMAP4, MYMAP5] sigmas = [1, 3, 5, 10, 30] fiq1 = plt.figure() fiq2 = plt.figure() fiq3 = plt.figure() fiq4 = plt.figure() fiq5 = plt.figure() fiqqs = [fiq1, fiq2, fiq3, fiq4, fiq5] multis = zip(sigmas, BIGMAPS, fiqqs) for sigma, MYMAP, fiq in multis: filename=alpha+'_'+str(sigma)+'_'+str(npha)+'_'+str(phamin)+'_'+str(phamax)+'_'+str(nobs)+'_'+str(obamin)+'_'+str(obamax)+'_'+str(nex)+'_'+str(Lemin)+'_'+str(Lemax)+'_.dat' MYfile = open(filename, 'a') for k in eel[:]: for j in indobs[:]: for i in indpha[:]: A=MYMAP[i, j, k] stringa = str(A) + ',' MYfile.write(stringa) accapo = '\n' MYfile.write(accapo) MYfile.close() 2014-04-10 19:55 GMT-04:00 Danny Yoo <d...@hashcollision.org>: > > > ncalls tottime percall cumtime percall filename:lineno(function) > > 1 149.479 149.479 199.851 199.851 skymaps5.py:16(mymain) > > 18101000 28.682 0.000 28.682 0.000 {method 'write' of 'file' > objects} > > > > 33044 5.470 0.000 6.444 0.000 > interpolate.py:394(_call_linear) > > 230000 2.272 0.000 21.279 0.000 instruments.py:10(kappa) > > 231328 2.120 0.000 2.120 0.000 > {numpy.core.multiarray.array} > > 33044 1.719 0.000 3.836 0.000 > interpolate.py:454(_check_bounds) > > 66088 1.611 0.000 1.611 0.000 {method 'reduce' of > 'numpy.ufunc' > > objects} > > 33044 1.146 0.000 11.623 0.000 > interpolate.py:443(_evaluate) > > 33044 1.120 0.000 5.542 0.000 > interpolate.py:330(__init__) > > 33044 0.659 0.000 2.329 0.000 polyint.py:82(_set_yi) > > > > the major time is required by mymain that is the whole program. > > Good! Profiles like this allow us to pinpoint issues. > > Wait... ?! > > The profiler is saying that the majority of time is in my main, but _not_ > in auxiliary functions. That's surprising. Am I misreading the profile? > > Can you show what mymain is doing? >
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor