You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TDBTrace>>#traceAtTime:ifAbsent: (18.4%) - single index for all traces?
TDBTrace>>#enableSimulatorDuring:: Currently, we are customizing all contexts there, which makes every forward-step in a large tree an expensive operation. Would it be fine only to customize the top context instead? Or could we at least exclude dead contexts (this would still be an optimization from O(n) to O(√n))?
Ideas for reducing space consumption:
Use dense table memory layout for certain objects/slots (i.e., Context/pc)?
Reduce default size of TDBTrace.children? Currently, over 90% of all trace instances do have 2 children or less:
Current bottlenecks during tracing are:
TDBTrace>>#maxTimeIndex
(42%) - cache?TDBTrace>>#traceAtTime:ifAbsent:
(39%) - inline binary search? don't use#associations
.Remaining potential for optimization:
SimulationContext>>#customize:
(1.7%) - hard-code relevant subset ofcopyFrom:
TDBMemory>>#object:priorTo:atSlot:put:
(19.4%) - avoidthisContext
, anything else?TDBTrace>>#updateMaxTimeIndex:from:
(7.5%)TDBTrace>>#traceAtTime:ifAbsent:
(18.4%) - single index for all traces?TDBTrace>>#enableSimulatorDuring:
: Currently, we are customizing all contexts there, which makes every forward-step in a large tree an expensive operation. Would it be fine only to customize the top context instead? Or could we at least exclude dead contexts (this would still be an optimization from O(n) to O(√n))?Ideas for reducing space consumption:
Context
/pc
)?TDBTrace.children
? Currently, over 90% of all trace instances do have 2 children or less:The text was updated successfully, but these errors were encountered: