Note

You are reading an old version of the Evennia documentation. The latest version is here

.

# Source code for evennia.server.profiling.timetrace

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

    import time

    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

Note

You are reading an old version of the Evennia documentation. The latest version is here

.