Changeset 2548


Ignore:
Timestamp:
Nov 25, 2016 12:44:43 PM (5 years ago)
Author:
vondreele
Message:

put profiler into testDeriv.py

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIstrMath.py

    r2546 r2548  
    997997    Gdata = np.swapaxes(Gdata,1,2)              # put Natoms last - Mxyz,Nops,Natms
    998998#    GSASIIpath.IPyBreak()
    999     Mag = np.tile(Mag[:,nxs],len(SGMT)*Ncen).T  #make Mag same length as Gdata
    1000     if SGData['SGInv']:
    1001         Mag = np.repeat(Mag,2,axis=0)
     999    Mag = np.tile(Mag[:,nxs],Nops).T  #make Mag same length as Gdata
    10021000    dGdm = (1.-Gdata**2)                        #1/Mag removed - canceled out in dqmx=sum(dqdm*dGdm)
    10031001    dFdMx = np.zeros((nRef,mSize,3))
  • trunk/testDeriv.py

    r2539 r2548  
    2323import time
    2424import cPickle
     25import cProfile,pstats,StringIO
    2526import wx
    2627import numpy as np
     
    156157        def test1():
    157158            fplot = self.plotNB.add('function test').gca()
     159            pr = cProfile.Profile()
     160            pr.enable()
    158161            M = G2stMth.errRefine(self.values,self.HistoPhases,
    159162                self.parmDict,self.varylist,self.calcControls,
    160163                self.pawleyLookup,None)
     164            pr.disable()
     165            s = StringIO.StringIO()
     166            sortby = 'tottime'
     167            ps = pstats.Stats(pr, stream=s).strip_dirs().sort_stats(sortby)
     168            print 'Profiler of function calculation; top 50% of routines:'
     169            ps.print_stats("GSASII",.5)
     170            print s.getvalue()
    161171            fplot.plot(M,'r',label='M')
    162172            fplot.legend(loc='best')
    163173           
    164         def test2(name,delt):
     174        def test2(name,delt,doProfile):
    165175            Title = 'derivatives test for '+name
    166176            varyList = self.varylist+self.depVarList
    167177            hplot = self.plotNB.add(Title).gca()
     178            if doProfile:
     179                pr = cProfile.Profile()
     180                pr.enable()
    168181            dMdV = G2stMth.dervRefine(self.values,self.HistoPhases,self.parmDict,
    169182                varyList,self.calcControls,self.pawleyLookup,None)
     183            if doProfile:
     184                pr.disable()
     185                s = StringIO.StringIO()
     186                sortby = 'tottime'
     187                ps = pstats.Stats(pr, stream=s).strip_dirs().sort_stats(sortby)
     188                ps.print_stats("GSASII",.5)
     189                print 'Profiler of '+name+' derivative calculation; top 50% of routines:'
     190                print s.getvalue()
    170191            M2 = dMdV[varyList.index(name)]
    171192            hplot.plot(M2,'b',label='analytic deriv')
     
    200221        while self.plotNB.nb.GetPageCount():
    201222            self.plotNB.nb.DeletePage(0)
     223           
    202224        test1()
     225
     226        doProfile = True
    203227        for use,name,delt in zip(self.use,self.varylist+self.depVarList,self.delt):
    204228            if use:
    205                 test2(name,delt)
     229                test2(name,delt,doProfile)
     230                doProfile = False
    206231       
    207232        self.plotNB.Show()
Note: See TracChangeset for help on using the changeset viewer.