Difference between revisions of "D45 Scalability"

From Event-B
Jump to navigationJump to search
imported>Tommy
imported>Tommy
Line 16: Line 16:
 
= Choices / Decisions =
 
= Choices / Decisions =
 
== Improved Performance ==
 
== Improved Performance ==
SYSTEREL lead a two phase investigation to have a better idea of the work to be done to improve the performance. Each phase being followed by some refactoring of the code. Out of the early investigation, a cause and effect relationship has been found between perfomance loss and the various reported bugs, such as "platform hanging" bugs or even "no more handle" bugs related to the high consumption of graphical elements on Windows platforms. Indeed, it appeared that solving the performance issues sometimes solved induced bugs as well.<br>
+
Concerning the platform performance, SYSTEREL lead a two phase investigation to have a better idea of the work to be done. Each phase being followed by some refactoring of the code. Out of the early investigation, a cause and effect relationship has been found between perfomance loss and the various reported bugs, such as "platform hanging" bugs or even "no more handle" bugs related to the high consumption of graphical elements on Windows platforms. Indeed, it appeared that solving the performance issues sometimes solved induced bugs as well.<br>
 
Later, a deeper investigation was performed, to indentify and tackle the remaining performance issues. Profiling and code review were the two techniques used. The profiling strategy allowed to get a better localisation of the performance loss in both UI and core code while the code review helped to understand the intrinsic misuses or drawbacks of particular components and/or architectures.
 
Later, a deeper investigation was performed, to indentify and tackle the remaining performance issues. Profiling and code review were the two techniques used. The profiling strategy allowed to get a better localisation of the performance loss in both UI and core code while the code review helped to understand the intrinsic misuses or drawbacks of particular components and/or architectures.
 
A good example, was the Event-B built-in editor based on form editors with a high use of greedy graphical components. Such architecture appeard to be weak when it was needed to display industrial size models. This affected the modelling experience with some long, and really annoying to the user, reaction lags. To solve such issue, it has been chosen to refactor the editors using a textual representation which was a light-weight graphical alternative to lower the number of needed components. Such refactoring among others made on both core code and UI code, allowed to gain up to 25 times speed-up on the UI, and almost a 2 times speed-up in the core code, making the platform usable again in an industrial context.
 
A good example, was the Event-B built-in editor based on form editors with a high use of greedy graphical components. Such architecture appeard to be weak when it was needed to display industrial size models. This affected the modelling experience with some long, and really annoying to the user, reaction lags. To solve such issue, it has been chosen to refactor the editors using a textual representation which was a light-weight graphical alternative to lower the number of needed components. Such refactoring among others made on both core code and UI code, allowed to gain up to 25 times speed-up on the UI, and almost a 2 times speed-up in the core code, making the platform usable again in an industrial context.

Revision as of 14:28, 17 November 2011

Overview

  • Performance Improvements According to the refocus mentionned in the General Platform Maintenance chapter, much of the reworking efforts performed on the core plateform basically aimed to overcome Rodin scalability weaknesses, and the continuous need of seamless proving experience. The performance was enhanced by core implementation and user interface refactorings. The proving usability was enhanced by the possibility to customize, combine, and parameterize tactics and the addition of new inference and rewriting rules.
  • TODO An overview of the contribution about th design pattern management / Generic Instantiation (Thai Son Hoang)
  • TODO An overview of the contribution about the edition (Thomas Muller, Ingo Weigelt)

Motivations

Improved Performance

It appeared that the various DEPLOY partners encountered several major issues while editing large models. Some were related to the core code of the Rodin platform, causing crashes, loss of data, corruption in models. Some other were related to the UI causing platform hanging, and sometimes leading to its freezing which required sometimes to kill the Rodin process, thus also leading to potential loss of data and corruption in models. Hence, it appeared necessary to solve such issues before the end of DEPLOY.

Design Pattern Management / Generic Instantiation

TODO To be completed by Thai Son Hoang

Edition

TODO To be completed by Thomas Muller, Ingo Weigelt

Choices / Decisions

Improved Performance

Concerning the platform performance, SYSTEREL lead a two phase investigation to have a better idea of the work to be done. Each phase being followed by some refactoring of the code. Out of the early investigation, a cause and effect relationship has been found between perfomance loss and the various reported bugs, such as "platform hanging" bugs or even "no more handle" bugs related to the high consumption of graphical elements on Windows platforms. Indeed, it appeared that solving the performance issues sometimes solved induced bugs as well.
Later, a deeper investigation was performed, to indentify and tackle the remaining performance issues. Profiling and code review were the two techniques used. The profiling strategy allowed to get a better localisation of the performance loss in both UI and core code while the code review helped to understand the intrinsic misuses or drawbacks of particular components and/or architectures. A good example, was the Event-B built-in editor based on form editors with a high use of greedy graphical components. Such architecture appeard to be weak when it was needed to display industrial size models. This affected the modelling experience with some long, and really annoying to the user, reaction lags. To solve such issue, it has been chosen to refactor the editors using a textual representation which was a light-weight graphical alternative to lower the number of needed components. Such refactoring among others made on both core code and UI code, allowed to gain up to 25 times speed-up on the UI, and almost a 2 times speed-up in the core code, making the platform usable again in an industrial context.

Design Pattern Management / Generic Instantiation

TODO To be completed by Thai Son Hoang

Edition

TODO To be completed by Thomas Muller, Ingo Weigelt

Available Documentation

  • TODO Links for Improved Performance
  • TODO Links for Design Pattern Management / Generic Instantiation
  • TODO Links for Edition

Status

Improved Performance

TODO To be completed by Laurent Voisin, Nicolas Beauger, Thomas Muller

Design Pattern Management / Generic Instantiation

TODO To be completed by Thai Son Hoang

Edition

TODO To be completed by Thomas Muller, Ingo Weigelt