Skip to content

Performance Analyzers

Fabian Keller edited this page Sep 25, 2016 · 6 revisions

The current API provides an abstraction for performance analyzers and performance analysis results that is not bound to Palladio and hence, can be reused for other implementations as well. In a future step, the concerned interfaces and classes will be put into a separate project.

Overview

There are three important interfaces:

PerformanceAnalyzer: The PerformanceAnalyzer interface is the entry point for performance analyzers. A performance analyzer is specific to a certain model and can be thought of as "factory" for AnalysisContexts, which will perform the actual analysis.

AnalysisContext: The AnalysisContext provides a single analyze() method that performs the actual analysis. It has been configured by the PerformanceAnalyzer to analyze a single system with a certain configuration. The analysis returns a PerformanceResult.

PerformanceResult: A PerformanceResult is a collection of PerformanceMetrics attached to elements of the model under analysis. Hence, each result is related to a certain part of the model. The result values are value objects and provide very fine-grained semantics to what the analysis results mean.

With these interfaces it is easy to implement a custom performance analyzer for a certain model.

Available Performance Analyzers

Pcm2LqnsAnalyzer

The PcmLqnsAnalyzer analyzes a Palladio Component Model (PCM) with the LQNS solver provided by Palladio. The Pcm2LqnsAnalyzer is capable of running the analysis without an Eclipse environment nor a graphical user interface. The analysis can be configured with the options available in PcmLqnsAnalyzerConfig:

  • Output path: A folder where the LQNS input and output files are stored. By default, a temporary directory using java.nio.file.Files.createTempDirectory() is used.
  • Usage model: The file name of the usage model. Defaults to "default.usagemodel".
  • Allocation model: The file name of the allocation model. Defaults to "default.allocation".
Clone this wiki locally