-
Dilawar Singh authored
2ba6bd5 cleanup d0f5918 replace writeKkit to moosewriteKkit cb067ac correct from writeKkit to mooseWriteKkit 6b1bff4 Ubuntu16.04 with networkx and pygraphviz has some bug, for now small fix, automatic layout will be done spring_layout format dbe6875 Update .travis.yml 8a71426 Update README.md fcbacd5 Added travis file to moose-gui. ddcfbdc Removed shebangs from python scripts. d5cf170 Fixed the address of Free Software Foundation Inc. b88d5cc Merge commit 'aca40347' e0cea9f Squashed 'moose-gui/' changes from 1ef13c9-1ef13c9 git-subtree-dir: moose-gui git-subtree-split: 2ba6bd5d8e6b022edf3f3aa1a567462ab7ddf6ed
f0fd0e53
metrics.py 1.95 KiB
# This program is free software; you can redistribute it and/or modify
# it under the terms of the (LGPL) GNU Lesser General Public License as
# published by the Free Software Foundation; either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library Lesser General Public License for more details at
# ( http://www.gnu.org/licenses/lgpl.html ).
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# written by: Jeff Ortel ( jortel@redhat.com )
"""
The I{metrics} module defines classes and other resources
designed for collecting and reporting performance metrics.
"""
import time
from suds import *
from math import modf
from logging import getLogger
log = getLogger(__name__)
class Timer:
def __init__(self):
self.started = 0
self.stopped = 0
def start(self):
self.started = time.time()
self.stopped = 0
return self
def stop(self):
if self.started > 0:
self.stopped = time.time()
return self
def duration(self):
return ( self.stopped - self.started )
def __str__(self):
if self.started == 0:
return 'not-running'
if self.started > 0 and self.stopped == 0:
return 'started: %d (running)' % self.started
duration = self.duration()
jmod = ( lambda m : (m[1], m[0]*1000) )
if duration < 1:
ms = (duration*1000)
return '%d (ms)' % ms
if duration < 60:
m = modf(duration)
return '%d.%.3d (seconds)' % jmod(m)
m = modf(duration/60)
return '%d.%.3d (minutes)' % jmod(m)