(Student proposal by Juan Pablo Sandoval)
Description
Measuring the execution performance of an application is essentially done by varying some parameters and profiling the program execution for each variation. Identifying which method is slower, for which argument and on which object is crucial to precisely understand the reason of a slow or fast execution. Unfortunately, this work is essentially realized by software engineers in an ad-hoc manner.
The goal of this project is helps to detect and understand the reason of a slow or fast execution, caused by the software evolution. Varying some variables of the execution context essentially software versions and benchmarks.
We propose multidimensional profiling as a automatic way to repeatedly profile a software execution by varying some variables of the execution context.
Rizel will answer questions like “How the performance has evolved over the time?” and “Which software version is the cause of a drop of performance? Why?”
Technical details
The ingredients to exercise multidimensional profiling are:
- Define the variation points of the executing environment (v1,v2…vn), such as software versions, benchmark, instances of a particular class, among others.
- Specify the variation of the executing environment. Each variable may either be set to a fixed value, or may iterate over a range of values.
- Presenting the results. Data must be presented for analyze to emphasize the variation of performance.
You will use Glamour, Mondrian and Spy to exercise the profile, visualize it and navigate through the gathered information.
Benefit for the Student
The student will (i) the opportunity to address performance problems; (ii) get a better understanding of the executing environment of Pharo; (iii) make a contribution that will be backed up with scientific facts and results.
Benefit for the Community
The Smalltalk community and software engineers often need tools to analyze their programs and relevant code portion. And more important to aid program optimization.
We expect Rizel to help improve Pharo applications that suffers from suboptimal execution in pharo-smalltalk, which includes Nautilus and Metacello.
Rizel is aiming to be open for user contribution regarding the kind of analysis they want to have (e.g., evolution of the test coverage, memory consumption)
|