This projects holds the source code for the Source++ Live Insight Processor. This component is responsible for maintaining a graph of all the code in your project and providing real-time insights into the codebase.
The following runtime metrics are collected:
- Function duration
- Total invocations
- Average time per invocation
- Branch probability
- Total invocations
- Total branch taken
- Loop iterations
- Average iterations
- Average time per iteration
- Parameter value distribution
Using the combination of these runtime metrics, Source++ is able to provide Live Insights (i.e. runtime metric-powered auto-completions and inspections).
Auto-completion suggestions based on the runtime behavior of the codebase. For example, if a method has a generic parameter, Source++ will provide and prioritize suggestions for the most common types used for that parameter.
Reports code that is never executed at runtime. While static code analysis can detect dead code, it cannot detect dead code that is only executed under certain conditions. For example, a method that is only called when a certain configuration setting is enabled. Source++ is able to detect this dead code at runtime. This is useful for cleaning up code that is no longer needed.
Predicts impact of un-deployed code changes. For example, if a developer adds a slow method to a fast method, Source++ will predict the performance impact of this change. This is useful for developers to make informed decisions about refactoring code.
Predicts the average total time for newly created loops via average iterations and average time per iteration runtime metrics. The time considered to be "critical" is configurable with a default value of 5 seconds.
Predicts the average total time for newly created methods via method duration runtime metrics. The time considered to be "critical" is configurable with a default value of 5 seconds.