It would be useful to implement CPU usage profiling of the adviser to identify bottlenecks in the resolution process and work on optimizing the most computationally expensive parts.
[ ] Research the most appropriate tools to perform profiling
[ ] Implement a module to monitor CPU usage for different parts of the adviser during an advise run
[ ] Make adviser runs more observable when performing CPU usage profiling, computing metrics about performance which could eventually be synced in Thoth's database for further analysis and comparisons between versions of adviser
Problem statement
It would be useful to implement CPU usage profiling of the adviser to identify bottlenecks in the resolution process and work on optimizing the most computationally expensive parts.
Profiling already exists for memory (see https://github.com/thoth-station/adviser/blob/master/thoth/adviser/boots/_debug/memtrace.py)
Acceptance Criteria