Table of Contents

Class ScriptBlockProfiler

Namespace
LunyScript.Diagnostics
Assembly
LunyScript.dll

Concrete implementation of block-level profiling for LunyScript execution. Tracks execution time for each sequence/block with configurable rolling average. Public methods use [Conditional] attributes - completely stripped in release builds unless DEBUG or LUNYSCRIPT_DEBUG defined.

public sealed class ScriptBlockProfiler
Inheritance
object
ScriptBlockProfiler

Constructors

ScriptBlockProfiler()

public ScriptBlockProfiler()

Properties

RollingAverageWindow

public int RollingAverageWindow { get; set; }

Property Value

int

Methods

BeginBlock(ScriptBlockId)

[Conditional("DEBUG")]
[Conditional("LUNYSCRIPT_DEBUG")]
public void BeginBlock(ScriptBlockId scriptBlockId)

Parameters

scriptBlockId ScriptBlockId

EndBlock(ScriptBlockId, Type)

[Conditional("DEBUG")]
[Conditional("LUNYSCRIPT_DEBUG")]
[Conditional("LUNYSCRIPT_PROFILE")]
public void EndBlock(ScriptBlockId scriptBlockId, Type blockType)

Parameters

scriptBlockId ScriptBlockId
blockType Type

RecordError(ScriptBlockId, Exception)

[Conditional("DEBUG")]
[Conditional("LUNYSCRIPT_DEBUG")]
[Conditional("LUNYSCRIPT_PROFILE")]
public void RecordError(ScriptBlockId scriptBlockId, Exception ex)

Parameters

scriptBlockId ScriptBlockId
ex Exception

Reset()

[Conditional("DEBUG")]
[Conditional("LUNYSCRIPT_DEBUG")]
[Conditional("LUNYSCRIPT_PROFILE")]
public void Reset()

TakeSnapshot()

public ScriptBlockProfilerSnapshot TakeSnapshot()

Returns

ScriptBlockProfilerSnapshot