Perfexionists / perun

Lightweight Performance Control System
GNU General Public License v3.0
16 stars 14 forks source link

[Ktrace] Transform the measured data into a Perun profile #169

Closed JiriPavela closed 5 months ago

JiriPavela commented 9 months ago

Performance data parsed from the profiling are currently stored in a temporary CSV file from Pandas DataFrame. In order to leverage the full potential of Perun, the data should be stored in a proper Profile. One current unknown is how to properly store the trace context information so that postprocessors and visualizations work properly.

tfiedor commented 9 months ago

The trace will be represented as list of dictionaries, that currently includes single key func, so e.g. as follows:

'trace': [{'func': "f"}, {'func': 'g'}, ... ]

This is in compliance with traces as implemented in memory collector (it, however, suppports other keys: location and file). There might be some additional information we could include (probably call order, in case the ordering of the list breaks somehow? Or in case, we abstract the trace, we could include the arity of the call chain, so f -> f -> f could be abstracted as {"func": "f", "call_chain_len": 3}