Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Share simulator caches #82

Open
LinqLover opened this issue Jun 18, 2022 · 0 comments
Open

Share simulator caches #82

LinqLover opened this issue Jun 18, 2022 · 0 comments
Labels
development Concerns internal quality (tests, performance, automation, ...) engineering Technical change to the machinery

Comments

@LinqLover
Copy link
Collaborator

Since #78, tracing and retracing performance has dropped. For small expressions, up to 40% of the time account for TDBMemorySimulator>>#initializeAllPrimitives. Maintain shared caches to improve the situation.

Notes:

  • Profile first, e.g.:
    memory := TDBMemory new.
    [[10000 timesRepeat: [(TDBRangeRetracingSimulator forMemory: memory atTimes: (1 to: 3)) evaluate: [thisContext 
    tdbRetracingTimeIndex +1]]] timeProfile] fork
  • TDBMemorySimulator: introduce PrimitiveHandlers cache that maps set of requirements values (shouldIsolate etc.) to dictionary of handler blocks that take aSimulator as their first argument
  • Build something similar for pragmaPrimitives
  • Consider caching capabilityPragmas in SimulationStudio
@LinqLover LinqLover added engineering Technical change to the machinery development Concerns internal quality (tests, performance, automation, ...) labels Jun 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
development Concerns internal quality (tests, performance, automation, ...) engineering Technical change to the machinery
Projects
None yet
Development

No branches or pull requests

1 participant