The Memory Analysis Cube (MAC) is an ActivePivot project that aims to provide the necessary tools to explore and analyze the data consumption from any other ActivePivot application, starting from ActivePivot 5.8 onward.
The project is built as a standalone Spring Boot jar file with an embedded
ActiveUI application available on localhost:9092
by default.
This version is compatible with exports from ActivePivot 5.8+ servers.
The MAC server uses the latest released versions of ActivePivot and ActiveUI by default, but the dependency versions can be changed in the project's POM.
- Off Heap memory usage monitoring
- Store/Field-related memory footprint
- Cube-related memory footprint
- Overview of structure-related memory footprint
- Loading and comparing several ActivePivot applications' exported memory dump files
The requirements for building the MAC application are the following :
- Maven 3.0 +
- Java 11 +
- ActivePivot artifacts
- ActiveUI artifacts
The SpringBoot JAR of the application can be built by running the following command line:
mvn clean install -DskipTests=true
The requirements for launching the MAC application are the following :
- Java 11+
- The built MAC .jar file
- A valid ActivePivot license
Once the JAR file built on the ./target directory
, the MAC server can be launched by the following command line:
java -jar [path to the MAC .jar file]
ActivePivot 5.8+ applications come with a number of ways to export their memory usage in the form of memory report files, that can then be imported and analyzed using MAC.
The process is explained below:
- Exporting your application
- Structure of memory statistics and decompressing generated files
- Importing data in MAC
To fully make use of MAC's capabilities for analyzing your project, it is important to get familiar with its data model.
MAC comes with a number of predefined ActiveUI bookmarks that each offer some insights to various aspects of the monitored application.
- Overview
- Per-field Analysis
- Vector Block Analysis
- Dictionary and Index Analysis
- Aggregate Provider Analysis
- This tool does not support projects with multiple datastores. It is possible to import data from multiple datastores, but there are no ways to assign a store to a given datastore nor prevent conflicts between store names.
- On-heap memory analysis is currently not fully implemented. The application only sums the memory used by Chunks. Please directly refer to the JMX beans of your application or other analysis tools for a deeper investigation.
- Display and use the consumed On-heap memory reported by the Memory Analysis.