Go to: Synopsis. Return value. Keywords. Related. Flags. Python examples.


timer([endTimer=boolean], [lapTime=boolean], [name=string], [startTimer=boolean])

Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.

timer is NOT undoable, NOT queryable, and NOT editable.

Allow simple timing of scripts and commands. The resolution of this timer is at the level of your OS's gettimeofday() function. Note:This command does not handle stacked calls. For example, this code below will give an incorrect answer on the second timer -e call.
timer -s;
timer -s;
timer -e;
timer -e;
To do this use named timers:
timer -s;
timer -s -name "innerTimer";
timer -e -name "innerTimer";
timer -e;

Return value



debug, timer


dgtimer, timerX


endTimer, lapTime, name, startTimer
Long name (short name) Argument types Properties
startTimer(s) boolean create
Start the timer.
endTimer(e) boolean create
Stop the timer and return the time elapsed since the timer was started (in seconds). Once a timer is turned off it no longer exists, though it can be recreated with a new start
lapTime(lap) boolean create
Get the lap time of the timer (time elapsed since start in seconds). Unlike the end flag this keeps the timer running.
name(n) string create
Use a named timer for the operation. If this is omitted then the default timer is assumed.

Flag can appear in Create mode of command Flag can appear in Edit mode of command
Flag can appear in Query mode of command Flag can have multiple arguments, passed either as a tuple or a list.

Python examples

import maya.cmds as cmds

cmds.timer( s=True )
# code being timed
print "START: time this"
for i in range (0, 50):
        print ("time this "+str(i))
print "END: time this"
cmds.timer( e=True )
# Named timers can be used for nesting
cmds.timer( s=True, name="outerLoop" )
print "START: macro loop timing"
for i in range(0,50):
        cmds.timer( s=True )
        for j in range(5,50):
                newObjs = cmds.sphere( spans=j )
                cmds.delete( newObjs )
        innerTime = cmds.timer( e=True )
        lapTime = cmds.timer( lap=True, name="outerLoop" )
        print "\tInner loop %d = %g" % (i, innerTime)
        print "\t       SUB = %g" % lapTime
fullTime = cmds.timer( e=True, name="outerLoop" )
print "END: Full timing was %g" % fullTime