JavaScript and Page Memory Monitoring

🔍 JavaScript and Page Memory Monitoring

GermainUX combines continuous browser-memory monitoring with optional code-level JavaScript profiling to help teams detect memory degradation and investigate the activity associated with it.

GermainUX component

Role

GermainUX RUM JS

Monitors JavaScript heap usage and page-memory consumption when the GermainUX monitoring script can be deployed in the application.

GermainUX RUM Extension

Enables browser monitoring when RUM JS cannot be added directly to the application, or when access to the complete browser-page context requires an extension.

GermainUX JS Profiler

Captures deeper JavaScript execution, function timing, browser, DOM, rendering, and network diagnostics for code-level investigation.

Memory monitoring is enabled by default for each applicable User Monitoring Profile and collects measurements every 30 seconds. Configuration is only required to customize the collection frequency or monitoring scope.

image-20260903-203148.png

⚡ Capabilities

GermainUX helps teams:

  • Track JavaScript heap and page-memory consumption over time.

  • Identify pages and sessions with unusually high memory usage.

  • Detect sustained memory growth that may indicate a potential memory leak.

  • Compare memory consumption across pages, workflows, browsers, releases, and user populations.

  • Correlate memory pressure with slow interactions, long tasks, freezes, errors, crashes, and other experience issues.

  • Analyze the JavaScript functions and browser activity associated with performance degradation.

  • Determine which users, sessions, pages, and business workflows are affected.

  • Validate whether an application change resolved the problem.

Continuous memory monitoring

GermainUX RUM JS or the GermainUX RUM Extension captures browser-memory measurements during real user sessions.

Use:

  • RUM JS when the GermainUX monitoring script can be deployed directly in the application.

  • RUM Extension when direct script deployment is not possible or the application’s security architecture prevents access to the required browser context.

These components provide the historical and session-level evidence required to identify:

  • High JavaScript heap usage.

  • Excessive page-memory consumption.

  • Memory that progressively increases during long-running sessions.

  • Pages or workflows that consistently consume more memory.

  • Memory regressions introduced by an application release.

  • Users and sessions experiencing the greatest impact.

Measurements are associated with the relevant application, page, browser, user, and session context.

Code-level investigation with JS Profiler

When RUM JS or the RUM Extension identifies abnormal memory growth or related browser degradation, the GermainUX JS Profiler can provide deeper diagnostic evidence.

Depending on the configured profiling level, it can capture:

  • JavaScript function execution.

  • Function duration.

  • Exclusive and cumulative execution time.

  • Long-running browser tasks.

  • JavaScript errors and stack traces.

  • Browser events and user interactions.

  • DOM and rendering activity.

  • Network requests and resource loading.

  • Application, page, and session context.

This evidence helps determine whether expensive functions, repeated operations, excessive DOM activity, resource loading, or another front-end behavior is contributing to the observed degradation.

The JS Profiler complements continuous browser monitoring. RUM JS or the RUM Extension can remain enabled continuously, while deeper profiling should normally be limited to the users, pages, sessions, or periods required for an investigation.

Business benefits

JavaScript and Page Memory Monitoring helps organizations:

  • Detect browser-memory problems before they affect more users.

  • Identify the users and business activities experiencing the greatest impact.

  • Reduce the time required to reproduce intermittent slowdowns or browser instability.

  • Move from a memory symptom to the JavaScript and browser activity associated with it.

  • Prioritize corrections according to actual user and business impact.

  • Detect regressions introduced by new releases.

  • Validate improvements using real-user memory trends and targeted profiling evidence.

Analytics

GermainUX memory measurements can be analyzed through KPIs, measures, pivots, trends, drill-through views, and session context.

Analysis area

Examples

Memory consumption

JavaScript heap and page-memory usage

Trend

Memory growth during a session or over time

Segmentation

Application, page, workflow, browser, release, device, or user

Impact

Number of affected users and sessions

Related experience

Slow interactions, long tasks, freezes, errors, and crashes

Code-level evidence

JavaScript functions, execution time, DOM activity, resources, and network requests

image-20260903-203057.png


GermainUX users can create watches to receive notifications when collected memory insights meet conditions of interest.

Configuration

No configuration is required to use the default memory-monitoring behavior.

Change the collection frequency

Use settings.plugins.memory.frequency in the monitoring initialization script to change how frequently GermainUX collects memory measurements.

The value is specified in milliseconds. The following example changes the interval to two minutes:

JavaScript
const settings = germainApm.getDefaultSettings();

settings.plugins.memory.frequency = 120 * 1000;

germainApm.start(settings);

Shorter intervals provide more detailed trends but generate more monitoring data.

Configure the RUM Extension

When monitoring is deployed through the GermainUX RUM Extension:

  1. Deploy the extension to the supported browsers.

  2. Define the applications and URLs included in the monitoring scope.

  3. Associate the extension with the appropriate User Monitoring Profile.

  4. Verify that memory measurements reach GermainUX.

  5. Apply privacy, masking, and exclusion requirements.

The extension can be distributed through enterprise browser-management tools such as Microsoft Group Policy, Microsoft Intune, or Chrome Enterprise.

Configure the JS Profiler

Enable the JS Profiler when deeper browser and JavaScript evidence is required. Profiling can be limited to selected:

  • Users or diagnostic accounts.

  • Applications or URLs.

  • Pages or workflows.

  • Sessions or time periods.

  • Performance conditions.

Advanced profiling can generate additional data and browser overhead. Start with a controlled scope and expand it only when necessary.

  1. Use RUM JS or the RUM Extension to identify abnormal memory consumption or sustained memory growth.

  2. Determine the affected applications, pages, workflows, users, and sessions.

  3. Review related errors, long tasks, freezes, crashes, and slow interactions.

  4. Enable the JS Profiler for a controlled scope when code-level evidence is required.

  5. Analyze JavaScript execution, function timing, DOM activity, resource loading, and network activity.

  6. Correct the responsible code, component, or dependency.

  7. Validate the correction using memory trends and, when necessary, another targeted profiling session.

  8. Disable unnecessary deep profiling after sufficient evidence has been collected.

Browser support

Memory collection depends on browser APIs that are not available in every browser.

Supported browsers include recent versions of:

  • Google Chrome

  • Microsoft Edge

  • Opera

RUM Extension and JS Profiler support also depends on the extension version, permissions, application architecture, and enterprise browser policies.

Deployment and configuration

For your browser environment

Review Browser Monitoring.

Review the Browser Monitoring Deployment Overview.

Deploy GermainUX RUM JS when the monitoring script can be added to the application.

Deploy the GermainUX RUM Extension when direct script deployment is unavailable or full browser-page access requires an extension.

Deploy the GermainUX JS Profiler for deeper JavaScript and browser diagnostics.

Review the available Browser Monitoring configuration.

Review JavaScript Long Task and Browser Freeze Detection.

Review JavaScript Console and Error Monitoring.

Review the KPIs for User Monitoring and Replay.

Review the available Browser Monitoring KPIs.

ℹ️ Get Help

The Germain Team can help you set this up. Contact GermainUX Support.

 

Feature Availability: 2022.1 or later

Browser Support: only latest Chrome, Edge and Opera