An object used to measure script performance.
Since performance is non-deterministic, these objects don't allow reading the raw time values from Lua. They can be used anywhere a LocalisedString is used, except for LuaGuiElement::add's LocalisedString arguments, LuaSurface::create_entity's text argument, and LuaEntity::add_market_item.
booleanunknownfalseIs this object valid? This Lua object holds a reference to an object within the game engine. It is possible that the game-engine object is removed whilst a mod still holds the corresponding Lua object. If that happens, the object becomes invalid, i.e. this attribute will be false. Mods are advised to check for object validity if any change to the game state might have occurred between the creation of the Lua object and its access.
stringunknownfalseThe class name of this object. Available even when valid is false. For LuaStruct objects it may also be suffixed with a dotted path to a member of the struct.
LuaProfiler.reset()
profiler.reset()
takes_table: falsetable_optional: falseResets the clock, also restarting it.
LuaProfiler.stop()
profiler.stop()
takes_table: falsetable_optional: falseStops the clock.
LuaProfiler.restart()
profiler.restart()
takes_table: falsetable_optional: falseStart the clock again, without resetting it.
LuaProfiler.add(other: LuaProfiler)
profiler.add(other)
takes_table: falsetable_optional: falseAdd the duration of another timer to this timer. Useful to reduce start/stop overhead when accumulating time onto many timers at once.
If other is running, the time to now will be added.
other: LuaProfiler — The timer to add to this timer.LuaProfiler.divide(number: double)
profiler.divide(number)
takes_table: falsetable_optional: falseDivides the current duration by a set value. Useful for calculating the average of many iterations.
Does nothing if this isn't stopped.
number: double — The number to divide by. Must be > 0.