Performance consideration feedback

This chapter will provide you some useful information about the performance you should expect and about performance on production context (with big sized model and many users)

1. Reference time

You may wonder, if the performances you have are normal, that is, if the time elapsed, when doing usual action in Team for Capella, is the right one compared to what should be expected.

Ensuring that the elapsed time doing your actions is the expected one, will help you to ensure that there are no issues that could come from other cause like network lag, lack of memory, antivirus process etc..

1.1. Case Studies

Some studies have been done on reference Capella models:

  • The open source IFE model packaged with Capella

  • Combined IFEs, a modified version of IFE which is artificially swollen to have an important sized model.

The next figure presents some characteristics on those models and the expressions used to compute them.

Table 1. Reference models
Characteristics Project

IFE

Combined IFEs

File (size in KB)

Project

19 179

203 310

.capella

1 475

13 464

.aird

17 705

189 846

Model (number of elements)

AQL expressions to use in Interpreter view

Capella elements

5 378

49 389

aql:self.eAllContents()→size() select the first child of the .aird file in the Project Explorer

Components

110

1 230

aql:self.eAllContents(cs::Component)→size() select the first child of the .aird file in the Project Explorer

Functions

224

2 652

aql:self.eAllContents(fa::AbstractFunction)→size() select the first child of the .aird file in the Project Explorer

Diagrams

111

880

aql:self.eResource().getContents()→filter(diagram::DDiagram)→size() select a diagram in the Project Explorer

Tables

1

8

aql:self.eResource().getContents()→filter(table::DTable)→size() select a diagram in the Project Explorer

Elements displayed in all representations

6 384

70 850

aql:self.eResource().getContents()→filter (viewpoint::DRepresentation).eAllContents (viewpoint::DRepresentationElement)→size()

select a Diagram in the Project Explorer (only for local projects)

Refer to How to get characteristics of your model to see how to get the characteristics of your own model in order to compare it with those reference models.

1.2. Measures

Measures contained in this document give some idea and order of magnitude of the performances expected for comparable environments.

They have been taken on two different deployments:

  • Local: single computer with both client and server - IFE and Combined IFEs

  • OVH: two virtual machines, one for the client and one for the server as recommenced in Deployment recommendations.

1.2.1. Computer used for the tests

Local Windows computer

image

OVH Windows computer

image

1.2.2. Reference elapsed time

The memory allowed to the Team for Capella client can be configured with the capella.ini file beside capella.exe executable.

Table 2. Measured time on test models (5.0.0)
Elapsed time (s) IFE Combined IFEs

Xmx 3GB

Xmx 3GB

Export To Server

28,7

114

Open Session (first time)

3,7

9

Test Close Session

1

3

Open Session

2

6,5

Open the diagram (1)

4

6

Create a LFBD diagram on Root Logical Function. (2)

3

6

Save the session after steps from (3)

2

7

1.3. Analysis and conclusion

The majority of the scenarios could be done with the minimum recommended memory of 3Go.

Nevertheless, with model of big size (Combined IFEs ), we need more RAM to work with constant performance for some actions like Refresh all representations or Validate on the whole model.

If the Team for Capella Client reaches, at execution, the maximum allowed memory, the performance may drastically fall particularly for actions that consume a lot of memory such as:

  • Import a Capella project locally from the server

  • Do the Validation of the whole project

  • Start Refresh All Representation action

  • Save if many objects have been changed or deleted

  • Some particular Capella functionality such as functional transition

2. Dedicated tests on Combined IFEs

The aim of this test session was to ensure that Team for Capella is able to have to keep the right performances after having used for a while.

  • Combined IFEs is used as the Capella Project. It is a large sized project.

  • 20 users are connected to the Capella project on the server

  • 8 users are really working on the model. During the test, they will do standard actions such as

    • Open many diagrams

    • Create, Refresh, modify diagrams

    • Make functional transition for some of them

    • Regularly create semantic element through diagram or not

    • Use tool in diagram palette

    • Use the Activity Explorer, F8 and F9 to navigate

    • Validate some parts of the model

But also, other actions that demands significant amount of RAM

  • The tests have been done with 21 virtual machines hosted on OVH cloud (20 clients and 1 server):

    • Client Xmx=3Go

    • Server Xmx=4Go

2.1. Server

Throughout the test, the server never reaches its maximum allowed memory of 4Go RAM and not even 3Go. It keeps constant performance.

2.2. Client

The client behaves constantly with good performance throughout the tests.

Nevertheless, the client may reach 3Go of memory if high memory consumption actions are performed such as:

  • Import a Capella project locally from the server

  • Do the Validation of the whole project

  • Start Refresh All Representation action

Once the maximum allowed memory is reached:

  • The user keeps having good performance for standard actions

  • But the performance may fall drastically for high memory consuming actions. For that cases, the performance issue can be solved

    • using more allowed memory for the client (Xmx=4 or more)

    • simply restarting the client

Note that the potential performance issue encountered by one user has no impact on another user

2.3. conclusion

The model used is what we consider as a medium-big sized model.

20 users are working on it.

  • The server 4Go is well fitted for the use

  • The client 3Go RAM is sufficient for most cases.It can be increased to have best performance when the user uses high memory consuming action

3. How to get characteristics of your model

The simplest way to get characteristics of your model is to use the Sirius Session Details tab available in the Properties contextual menu of the .aird file of your project:

image

image

It will give you the following information about your project:

  • Number, name, path and number of contained elements of each resources

  • Selected Viewpoints

  • Number of representations

  • Some details about each representation (name type, id, status)

  • Number of loaded representations

  • Number of representations opened in editor

On shared projects, the Collaborative Session Details tab gives information about connected users and locks:

image

It is also possible to additional model characteristics thanks to the Interpreter view:

image

To get the characteristics of the .capella semantic resource :

  • select any semantic element

image

  • write the AQL query in the Interpreter view to get the result in the lower part of the view.

To get the characteristics of the representations in the .aird

  • select any representation

image

  • write the AQL query in the Interpreter view to get the result in the lower part of the view