Source code for evennia.server.profiling.timetrace

"""
Trace a message through the messaging system
"""

import time


[docs]def timetrace(message, idstring, tracemessage="TEST_MESSAGE", final=False): """ Trace a message with time stamps. Args: message (str): The actual message coming through idstring (str): An identifier string specifying where this trace is happening. tracemessage (str): The start of the message to tag. This message will get attached time stamp. final (bool): This is the final leg in the path - include total time in message """ if message.startswith(tracemessage): # the message is on the form TEST_MESSAGE tlast t0 # where t0 is the initial starting time and last is the time # saved at the last stop. try: prefix, tlast, t0 = message.split(None, 2) tlast, t0 = float(tlast), float(t0) except (IndexError, ValueError): t0 = time.time() tlast = t0 t1 = t0 else: t1 = time.time() # print to log (important!) print("** timetrace (%s): dT=%fs, total=%fs." % (idstring, t1 - tlast, t1 - t0)) if final: message = " **** %s (total %f) **** " % (tracemessage, t1 - t0) else: message = "%s %f %f" % (tracemessage, t1, t0) return message