Skip to Content
Lumensalis CircuitPython framework coming soon 🎉

LumensalisCP.Main.Profiler

Module Contents

Classes

ProfileWriteConfig
ProfileSnapEntry
IndexMap
CachedList
ProfileFrameBase
ProfileSubFrame
ProfileFrame
ProfileStubFrameEntry
ProfileStubFrame
Profiler

Functions

ptToSeconds

Data

TimePT
getProfilerNow

API

LumensalisCP.Main.Profiler.TimePT = None

LumensalisCP.Main.Profiler.getProfilerNow = None

LumensalisCP.Main.Profiler.ptToSeconds(v)

class LumensalisCP.Main.Profiler.ProfileWriteConfig(target, minE=None, minEB=None, minF=None, minSubF=None, minB=None, **kwds)

Bases: object

Initialization

__repr__()

writeLine(fmt: str, *args)

class LumensalisCP.Main.Profiler.ProfileSnapEntry(tag: str, when: LumensalisCP.Main.Releasable.TimeInSeconds, name2: str | None = None)

Bases: LumensalisCP.Main.Releasable.Releasable

__defaultEtc = None

gcFixedOverhead = 0

name : str = None

name2 : str | None = None

lw : LumensalisCP.Main.Releasable.TimeSpanInSeconds = None

e : LumensalisCP.Main.Releasable.TimeSpanInSeconds = None

_nest : ProfileSubFrame | None = None

_nesting : bool = None

etc : LumensalisCP.Main.Releasable.Dict = None

_nextSnap : LumensalisCP.Main.Profiler.ProfileSnapEntry = None

releaseNested()

shouldProfileMemory()

usedByProfile()

property usedGC

classmethod makeEntry(name: str, when: LumensalisCP.Main.Releasable.TimeInSeconds, name2: str | None = None)

reset(name: str, when: LumensalisCP.Main.Releasable.TimeInSeconds, name2: str | None = None)

augment(tag: str, val)

property nest : LumensalisCP.Main.Profiler.ProfileSubFrame | None

subFrame(context, name: str | None = None, name2: str | None = None) → LumensalisCP.Main.Profiler.ProfileSubFrame

writeOn(config: LumensalisCP.Main.Profiler.ProfileWriteConfig, indent=”)

jsonData(**kwds)

class LumensalisCP.Main.Profiler.IndexMap(attrPrefix, tags)

Bases: object

Initialization

contains(tag)

attrFor(tag)

class LumensalisCP.Main.Profiler.CachedList(size)

Bases: object

Initialization

__len__()

__getitem__(x)

append(item: LumensalisCP.Main.Releasable.Releasable)

reset()

class LumensalisCP.Main.Profiler.ProfileFrameBase(context: LumensalisCP.Main.Releasable.LumensalisCP.Main.Updates.UpdateContext)

Bases: LumensalisCP.Main.Releasable.Releasable

e : LumensalisCP.Main.Releasable.TimeSpanInSeconds = None

when : LumensalisCP.Main.Releasable.TimeSpanInSeconds = None

loopStartPT : LumensalisCP.Main.Profiler.TimePT = None

priorStartPT : LumensalisCP.Main.Profiler.TimePT = None

latestStartPT : LumensalisCP.Main.Profiler.TimePT = None

firstSnap : LumensalisCP.Main.Profiler.ProfileSnapEntry = None

currentSnap : LumensalisCP.Main.Profiler.ProfileSnapEntry = None

currentSnapIndex : int = None

index : int = None

depth : int = 0

snapNames : ClassVar[LumensalisCP.Main.Profiler.IndexMap] = None

snapMaxEntries : ClassVar[int] = None

nextFrameIndex = 1

reset(context: LumensalisCP.Main.Releasable.LumensalisCP.Main.Updates.UpdateContext)

__enter__() → LumensalisCP.Main.Profiler.ProfileFrameBase

__exit__(exc_type, exc_value, exc_tb)

usedByProfile()

property usedGC

activeEntry()

activeFrame() → LumensalisCP.Main.Profiler.ProfileFrameBase

subFrame(context, name: str | None = None, name2: str | None = None) → LumensalisCP.Main.Profiler.ProfileSubFrame

shouldProfileMemory()

iterSnaps() → LumensalisCP.Main.Releasable.Generator[LumensalisCP.Main.Profiler.ProfileSnapEntry]

__add(cls, name: str, name2: str | None = None)

releaseNested()

_resetSnap(tag)

snap(name: str, name2: str | None = None, cls=ProfileSnapEntry) → LumensalisCP.Main.Profiler.ProfileSnapEntry

writeOn(config: LumensalisCP.Main.Profiler.ProfileWriteConfig, indent=”)

jsonData(minF=None, minE=None, withSkipped=False, forceInclude=False, **kwds)

__str__()

finish()

class LumensalisCP.Main.Profiler.ProfileSubFrame(context: LumensalisCP.Main.Releasable.LumensalisCP.Main.Updates.UpdateContext, name: str | None = None, name2: str | None = None)

Bases: LumensalisCP.Main.Profiler.ProfileFrameBase

snapNames = ‘IndexMap(…)‘

reset(context: LumensalisCP.Main.Releasable.LumensalisCP.Main.Updates.UpdateContext, name: str | None = None, name2: str | None = None)

classmethod makeEntry(context: LumensalisCP.Main.Releasable.LumensalisCP.Main.Updates.UpdateContext, name: str | None = None, name2: str | None = None)

shouldProfileMemory()

class LumensalisCP.Main.Profiler.ProfileFrame(context: LumensalisCP.Main.Releasable.LumensalisCP.Main.Updates.UpdateContext = None, eSleep=0.0)

Bases: LumensalisCP.Main.Profiler.ProfileFrameBase

updateIndex : int = None

start : LumensalisCP.Main.Releasable.TimeInSeconds = None

eSleep : LumensalisCP.Main.Releasable.TimeInSeconds = None

snapNames = ‘IndexMap(…)‘

snapMaxEntries = 10

shouldProfileMemory()

classmethod makeEntry(context: LumensalisCP.Main.Releasable.LumensalisCP.Main.Updates.UpdateContext, eSleep=0.0)

NASTY!!! the only reason this is overridden is to eliminate the cost of the temporaries for

*

args and

**

kwds in CircuitPython GC

reset(context: LumensalisCP.Main.Releasable.LumensalisCP.Main.Updates.UpdateContext = None, eSleep=0.0)

frameData(minF=None, minE=None, **kwds)

jsonData(minF=None, minE=None, **kwds)

writeOn(config: LumensalisCP.Main.Profiler.ProfileWriteConfig, indent=”)

class LumensalisCP.Main.Profiler.ProfileStubFrameEntry(frame=None)

Bases: LumensalisCP.Main.Profiler.ProfileSnapEntry

subFrame(context, name: str | None = None, name2: str | None = None) → LumensalisCP.Main.Profiler.ProfileFrameBase

writeOn(target, indent=”, **kwds)

jsonData(**kwds)

class LumensalisCP.Main.Profiler.ProfileStubFrame(context=None)

Bases: LumensalisCP.Main.Profiler.ProfileFrame

activeFrame() → LumensalisCP.Main.Profiler.ProfileFrameBase

subFrame(context, name: str | None = None, name2: str | None = None) → LumensalisCP.Main.Profiler.ProfileSubFrame

snap(tag, tag2=None) → LumensalisCP.Main.Profiler.ProfileSnapEntry

reset(context=None, updateIndex=0, eSleep=0.0)

__enter__()

__exit__(exc_type, exc_value, exc_tb)

class LumensalisCP.Main.Profiler.Profiler(context: LumensalisCP.Main.Releasable.LumensalisCP.Main.Updates.UpdateContext, timings=None, stub=None)

Bases: object

Initialization

updateIndex : int = None

when : LumensalisCP.Main.Releasable.TimeInSeconds = None

currentSnap : LumensalisCP.Main.Profiler.ProfileSnapEntry | None = None

timingsLength : int = None

timings : LumensalisCP.Main.Releasable.List[LumensalisCP.Main.Profiler.ProfileFrame] = None

currentTiming : LumensalisCP.Main.Profiler.ProfileFrame = None

disabled : bool = None

stubFrame : LumensalisCP.Main.Profiler.ProfileStubFrame = None

nextNewFrame(context: LumensalisCP.Main.Releasable.LumensalisCP.Main.Updates.UpdateContext, eSleep=0) → LumensalisCP.Main.Profiler.ProfileFrame

timingForUpdate(updateIndex) → LumensalisCP.Main.Profiler.ProfileFrame | None