Issue #2162: Add performance logging for GFE edit area query evaluation.
Change-Id: I916750fd00549dc53b1dd645792c04f4f63aa338 Former-commit-id:11384d2198
[formerlyed39a866f0
] [formerly07312fe01f
] [formerly98f48e5a64
[formerly07312fe01f
[formerly 7d24f69078e324c56db448f293d3094df83f5c34]]] Former-commit-id:98f48e5a64
Former-commit-id: 0527b1c234a834d22bfd7b3815bbcd2f2a5ee8ef [formerly0b8a48b12e
] Former-commit-id:ffa45d26d9
This commit is contained in:
parent
b886cddc80
commit
ef8d1ab050
1 changed files with 55 additions and 7 deletions
|
@ -17,9 +17,24 @@
|
||||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
# further licensing information.
|
# further licensing information.
|
||||||
##
|
##
|
||||||
|
##
|
||||||
|
#
|
||||||
|
# SOFTWARE HISTORY
|
||||||
|
#
|
||||||
|
# Date Ticket# Engineer Description
|
||||||
|
# ------------ ---------- ----------- --------------------------
|
||||||
|
# Aug 12, 2013 2162 dgilling Add performance logging for
|
||||||
|
# query evaluation.
|
||||||
|
########################################################################
|
||||||
|
|
||||||
import numpy, copy, string, time, re, sys
|
import numpy, copy, string, time, re, sys
|
||||||
#import AFPS
|
|
||||||
#from numpy import *
|
from com.raytheon.uf.common.status import PerformanceStatus
|
||||||
|
from com.raytheon.uf.common.time.util import TimeUtil
|
||||||
|
|
||||||
|
|
||||||
|
PERF_LOG = PerformanceStatus.getHandler("GFE:");
|
||||||
|
|
||||||
|
|
||||||
class Query:
|
class Query:
|
||||||
def mask(self, wx, query, isreg=0):
|
def mask(self, wx, query, isreg=0):
|
||||||
|
@ -99,9 +114,14 @@ class Query:
|
||||||
self._fcst = self._client[fcst[0]]
|
self._fcst = self._client[fcst[0]]
|
||||||
self._time = time.time()
|
self._time = time.time()
|
||||||
|
|
||||||
def eval(self, str):
|
def eval(self, queryStr):
|
||||||
co, glob, loc = self.getEval(str)
|
timer = TimeUtil.getTimer()
|
||||||
return eval(co, glob, loc)
|
timer.start()
|
||||||
|
co, glob, loc = self.getEval(queryStr)
|
||||||
|
area = eval(co, glob, loc)
|
||||||
|
timer.stop()
|
||||||
|
PERF_LOG.logDuration("Executing edit area query [" + queryStr + "]", timer.getElapsedTime())
|
||||||
|
return area
|
||||||
|
|
||||||
def getTime(self):
|
def getTime(self):
|
||||||
return self._time
|
return self._time
|
||||||
|
@ -154,22 +174,35 @@ class Query:
|
||||||
rval['contains'] = self.contains
|
rval['contains'] = self.contains
|
||||||
fcstParms = self._fcst.keys()
|
fcstParms = self._fcst.keys()
|
||||||
editAreas = self._client.editAreaNames()
|
editAreas = self._client.editAreaNames()
|
||||||
|
timer = TimeUtil.getTimer()
|
||||||
for name in names:
|
for name in names:
|
||||||
|
timer.reset()
|
||||||
|
timer.start()
|
||||||
if name in fcstParms:
|
if name in fcstParms:
|
||||||
rval[name] = self.getGrid(self._fcst[name])
|
rval[name] = self.getGrid(self._fcst[name])
|
||||||
|
timer.stop()
|
||||||
|
PERF_LOG.logDuration("Retrieving grid for Parm [" + name + "]", timer.getElapsedTime())
|
||||||
elif name + "_SFC" in fcstParms:
|
elif name + "_SFC" in fcstParms:
|
||||||
rval[name] = self.getGrid(self._fcst[name + "_SFC"])
|
rval[name] = self.getGrid(self._fcst[name + "_SFC"])
|
||||||
|
timer.stop()
|
||||||
|
PERF_LOG.logDuration("Retrieving grid for Parm [" + name + "_SFC]", timer.getElapsedTime())
|
||||||
elif name in editAreas:
|
elif name in editAreas:
|
||||||
ea = self._client.getEditArea(name)
|
ea = self._client.getEditArea(name)
|
||||||
if type(ea) == type(""):
|
if type(ea) == type(""):
|
||||||
ea = self.eval(ea)
|
ea = self.eval(ea)
|
||||||
rval[name] = ea
|
rval[name] = ea
|
||||||
|
timer.stop()
|
||||||
|
PERF_LOG.logDuration("Retrieving edit area [" + name + "]", timer.getElapsedTime())
|
||||||
elif string.lower(name) == 'topo':
|
elif string.lower(name) == 'topo':
|
||||||
rval[name] = self._client.getTopo()
|
rval[name] = self._client.getTopo()
|
||||||
|
timer.stop()
|
||||||
|
PERF_LOG.logDuration("Retrieving topo grid", timer.getElapsedTime())
|
||||||
else:
|
else:
|
||||||
tmp = self.getParm(name)
|
tmp = self.getParm(name)
|
||||||
if tmp is not None:
|
if tmp is not None:
|
||||||
rval[name] = self.getGrid(tmp)
|
rval[name] = self.getGrid(tmp)
|
||||||
|
timer.stop()
|
||||||
|
PERF_LOG.logDuration("Retrieving grid for Parm [" + name + "]", timer.getElapsedTime())
|
||||||
return rval
|
return rval
|
||||||
|
|
||||||
def willRecurse(self, name, str):
|
def willRecurse(self, name, str):
|
||||||
|
@ -180,8 +213,23 @@ class Query:
|
||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def getEval(self, str):
|
def getEval(self, queryStr):
|
||||||
co, names = self.getCode(str)
|
timer = TimeUtil.getTimer()
|
||||||
|
timer.start()
|
||||||
|
co, names = self.getCode(queryStr)
|
||||||
|
timer.stop()
|
||||||
|
PERF_LOG.logDuration("Compiling edit area query [" + queryStr + "]", timer.getElapsedTime())
|
||||||
|
|
||||||
|
timer.reset()
|
||||||
|
timer.start()
|
||||||
loc = self.getLocals(names)
|
loc = self.getLocals(names)
|
||||||
|
timer.stop()
|
||||||
|
PERF_LOG.logDuration("Retrieving local variables for edit area query [" + queryStr + "]", timer.getElapsedTime())
|
||||||
|
|
||||||
|
timer.reset()
|
||||||
|
timer.start()
|
||||||
glob = copy.copy(getattr(numpy, '__dict__'))
|
glob = copy.copy(getattr(numpy, '__dict__'))
|
||||||
|
timer.stop()
|
||||||
|
PERF_LOG.logDuration("Creating global variables for edit area query [" + queryStr + "]", timer.getElapsedTime())
|
||||||
|
|
||||||
return co, glob, loc
|
return co, glob, loc
|
||||||
|
|
Loading…
Add table
Reference in a new issue