Easy Extension Framework v0.5 Help

Performance Testing

Comprehensive performance testing has been performed on Easy Extension Framework to assess the impact on JVM memory usage and application response times. These tests ensure that integrating Easy does not introduce memory inefficiencies or degrade system responsiveness.

JVM Memory Test

When developing new features with the Easy Extension Framework, it is common to make multiple code changes and repeatedly install or uninstall extensions. This test evaluates the effect of frequent install and uninstall operations on JVM metaspace usage.

JVM Memory Test Setup

Easy Extension Configuration for JVM Memory Test

  • A large Easy extension, available in private Git Repository (metaspace-test extension), was used for this test. This extension loads over 1,000 beans and DTOs to simulate a complex extension scenario.

  • A large Easy extension, available in private Git Repository (metaspace-test extension), was used for this test. This extension loads over 1,000 beans and DTOs to simulate a complex extension scenario.

  • The extension adds a price conversion service for fetching crypto prices, a Populator for DTO data, and a DataMapper for API responses.

  • To measure memory impact, 1,000 DTOs are created and loaded via EasyBeans.groovy within the extension.

Test Scenario and Scripts for JVM Memory Test

  • The test was executed over a 2-hour period, with extension install and uninstall operations triggered every 10 seconds.

  • JVM memory logs were collected throughout these operations to monitor and validate Metaspace usage.

  • Custom scripts used for collecting JVM logs, easy extension installation and to analyze logs. Custom scripts are available in private Git Repository - (Scripts)

  • Testing was performed in a local development environment.

Test Results for JVM Memory Test

Metaspace Classes Count

Metaspace Classes Count

Metaspace Class Loaders

Metaspace Class Loaders

Metaspace Memory Usage

Metaspace Memory Usage

JVM Memory Test Conclusion

The results demonstrate that repeated installation and uninstallation of extensions does not adversely affect JVM memory usage. Classes are loaded only once unless the extension changes, in which case only the relevant classes are reloaded. This confirms that Easy Extensions manage class loading efficiently, avoiding memory leaks and unnecessary class retention.

Response Time Validation

A key advantage of Easy Extension Framework is the ability to add new features to out-of-the-box functionality without redeployment. For example, adding a new attribute to the Product API response to display different product prices can be accomplished quickly using the framework.

To ensure this flexibility does not impact performance, response time testing is conducted to measure the effect of extending out-of-the-box features.

Test Setup

Easy Extension Configuration

  • The alternatecurrency extension was used for performance testing.

  • This extension introduces a new price service, DTO, and data mapper to extend the Product API with crypto prices.

Test Scenario and Scripts

  • A 1-hour OCC APIs performance test, with and without the alternatecurrency extension was conducted which include browsing, cart and checkout scenarios.

  • JMeter scripts for OCC APIs were used for performance testing to simulate Browsing, Cart and Checkout scenarios.

Test Results

Request Throughput without Easy

Request Throughput without Easy

API Service CPU Utilization without Easy

API Service CPU Utilization without Easy

95th Percentile Response Time without Easy

95th Percentile Response Time without Easy

Product API - 95th Percentile Response Time without Easy

Product API - 95th Percentile Response Time without Easy

Request Throughput with Easy

Request Throughput with Easy

API Service CPU Utilization with Easy

API Service CPU Utilization

95th Percentile Response Time with Easy

95th Percentile Response Time with Easy

Product API - 95th Percentile Response Time with Easy

Product API - 95th Percentile Response Time with Easy

Performance Metrics Comparison

Metric

With Easy Extension

Without Easy Extension

#Samples

269396

268260

Average (ms)

39.87

45.50

90th pct (ms)

73.00

85.00

95th pct (ms)

160.00

170.00

Transactions/s

74.74

74.32

Conclusion

The results show that similar throughput is achieved in both scenarios, with and without easy extensions, confirming that the framework does not introduce significant performance overhead.

Last modified: 18 August 2025