Header menu logo issie

StepCost Type

What one clock cycle of a design costs in step arrays, kept apart by which memory it comes from. The two are not interchangeable, and measurably so - though not in the way performance.memory suggests. usedJSHeapSize counts Uint32Arrays at every size, so it cannot tell the two apart; what separates them is the LIMIT. Uint32Array allocation ran to 15.5GB on a 32GB machine against a jsHeapSizeLimit of 3.7GB, so those are bounded by the machine and not by V8's pointer compression cage. Buses wider than 32 bits are held as a plain array of BigInt, which is ordinary heap - 400MB of values cost 454MB - inside that 4GB cage, shared with the model, the design and the waveforms. So a design can be refused for the second while nowhere near the first. FastCreate.stepBytesForWidth works out one port's share; FastCreate.stepCostOfDesign totals it.

Record fields

Record Field Description

HeapBytes

Full Usage: HeapBytes

Field type: int

BigInt step arrays and the per-step state references, which it does

Field type: int

TypedArrayBytes

Full Usage: TypedArrayBytes

Field type: int

Uint32Array storage, which the V8 heap limit does not bind

Field type: int

Instance members

Instance member Description

this.TotalBytes

Full Usage: this.TotalBytes

Returns: int
Returns: int

Type something to start searching.