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
For our performance analysis, it would be very useful to enhance the Merlin telemetry.
Current telemetry
Currently, the Merlin telemetry only contains time information. That timing information is broken down into the various Merlin phases: time spent during the reader phase, the preprocessor phase, the typer phase etc.
Proposed telemetry additions
It would be extremely useful to add memory and general GC information to that. Concretely, when running an ocamlmerlin query, I'd love to see information about
New memory allocation, i.e. the sum of memory allocated throughout the query execution.
Total memory usage, i.e. how much memory was used in total by ocamlmerlin, including the cached memory from before. This can be captured in different ways. I think the total memory usage at its peak would be enough.
(Possibly more info about the GC's work, e.g. for how long it has been running during the query.)
This new telemetry should be similarly broken down into the various Merlin phases as the timing telemetry.
Motivation for telemetry additions
In general, for performance analysis, it's useful to have insight into the memory footprint. Concretely, I have three concrete use cases in mind:
I'd like to know if the time performance outliers we sometimes observe have some correlation with memory bursts.
Adding memory data to our continuous benchmarks might help us catch newly introduced memory leaks/ memory performance regressions.
Discussion on CLI details
Do we want this enriched telemetry always or only when opted in in some way? As a heads-up: I'm also enriching the telemetry in other ways, so having full telemetry always would be quite verbose.
The text was updated successfully, but these errors were encountered:
For our performance analysis, it would be very useful to enhance the Merlin telemetry.
Current telemetry
Currently, the Merlin telemetry only contains time information. That timing information is broken down into the various Merlin phases: time spent during the reader phase, the preprocessor phase, the typer phase etc.
Proposed telemetry additions
It would be extremely useful to add memory and general GC information to that. Concretely, when running an
ocamlmerlin
query, I'd love to see information aboutocamlmerlin
, including the cached memory from before. This can be captured in different ways. I think the total memory usage at its peak would be enough.This new telemetry should be similarly broken down into the various Merlin phases as the timing telemetry.
Motivation for telemetry additions
In general, for performance analysis, it's useful to have insight into the memory footprint. Concretely, I have three concrete use cases in mind:
Discussion on CLI details
Do we want this enriched telemetry always or only when opted in in some way? As a heads-up: I'm also enriching the telemetry in other ways, so having full telemetry always would be quite verbose.
The text was updated successfully, but these errors were encountered: