🔍 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 |
|---|---|
|
Monitors JavaScript heap usage and page-memory consumption when the GermainUX monitoring script can be deployed in the application. |
|
|
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. |
|
|
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.
⚡ 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 |
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:
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:
-
Deploy the extension to the supported browsers.
-
Define the applications and URLs included in the monitoring scope.
-
Associate the extension with the appropriate User Monitoring Profile.
-
Verify that memory measurements reach GermainUX.
-
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.
Recommended investigation workflow
-
Use RUM JS or the RUM Extension to identify abnormal memory consumption or sustained memory growth.
-
Determine the affected applications, pages, workflows, users, and sessions.
-
Review related errors, long tasks, freezes, crashes, and slow interactions.
-
Enable the JS Profiler for a controlled scope when code-level evidence is required.
-
Analyze JavaScript execution, function timing, DOM activity, resource loading, and network activity.
-
Correct the responsible code, component, or dependency.
-
Validate the correction using memory trends and, when necessary, another targeted profiling session.
-
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 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.
Component: JS Profiler, RUM JS, RUM Extension
Feature Availability: 2022.1 or later
Browser Support: only latest Chrome, Edge and Opera