[perf] Extract costly computation in ArrangeAllWithAutoSize outside of the loop

On creation of a medium-sized diagram (1120 top-level elements with no
children and no edges), this gets around 30% performance improvements
in SiriusCanonicalLayoutCommand: from ~2000ms to ~1400ms:

Before:
- SiriusCanonicalLayoutCommand: 2015ms
- SiriusCanonicalLayoutCommand: 1996ms
- SiriusCanonicalLayoutCommand: 1992ms

After:
- SiriusCanonicalLayoutCommand: 1493ms
- SiriusCanonicalLayoutCommand: 1420ms
- SiriusCanonicalLayoutCommand: 1386ms

Change-Id: I2e32c3e0362f99894610cc1368862fcf71f1ff0a
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
1 file changed
tree: f44f0d151fc12535d99ad8d5e301e70d3cfde0e2
  1. packaging/
  2. plugins/
  3. releng/
  4. .gitattributes
  5. .gitignore
  6. .travis.yml
  7. build.sh
  8. CONTRIBUTING
  9. LICENSE
  10. NOTICE
  11. pom.xml
  12. README.md
README.md

Eclipse Sirius

Build Status

Sirius enables the specification of a modeling workbench in terms of graphical, table or tree editors with validation rules and actions using declarative descriptions.

For more details see the project page and the main wiki page.

Building

The build uses Tycho. To launch a complete build, issue

mvn clean package

from the top-level directory. The resulting update-site (p2 repository) can be found in packaging/org.eclipse.sirius.update/target/repository.

By default the build uses a Neon-based target platform. You can specify a different platform like this:

mvn clean package -Dplatform-version-name=name

where name can be any of the following values:

  • mars (Eclipse 4.5)
  • neon (Eclipse 4.6, the default and reference target platform)
  • canary (uses nightly builds of all our dependencies, only used for testing)

The corresponding target platform definitions can be found in releng/org.eclipse.sirius.targets.