Performance analysis of Actifsource was carried out on a large customer model (services: NameResourceIndex, TransientResource, Validator, Generator, Builder). The following optimizations have been implemented.
Implemented optimizations
- Logging option Function Duration Time added, so individual Java and Selector functions can be profiled.
- Listener evaluation moved off the GUI thread — only the notification itself is executed in the GUI thread. A large number of model inconsistencies no longer blocks the UI.
- Revalidation list lock split into separate locks for resources and scopes.
- Builder integrated into the ServiceCoordinator, split into two Actifsource builders: a non-interruptible one (ch.actifsource.persistent.builder, e.g. ClassChangeBuilder) and an interruptible one (ch.actifsource.builder). This avoids repeated builder runs (e.g. triggered by the Java builder) and no longer blocks the workspace.
- Immediate service shutdown when Eclipse is closed, so Eclipse terminates quickly.
Builder configuration and migration
- Existing projects are converted automatically to the legacy builder and therefore behave exactly as before. They do not profit from the builder-related performance improvements until they are migrated manually.
- Newly created projects automatically use the new performance builders.
To migrate a legacy project, replace the following build command in the project's .project file



