Skip to content

Enhance application performance - #152

Merged
3dgiordano merged 2 commits into
developmentfrom
PERF-IMPROVEMENTS
Aug 6, 2026
Merged

Enhance application performance#152
3dgiordano merged 2 commits into
developmentfrom
PERF-IMPROVEMENTS

Conversation

@3dgiordano

Copy link
Copy Markdown
Collaborator

This pull request introduces several important improvements to memory management, resource cleanup, and protocol cache handling in the HTTP plugin. The main changes address memory leaks and resource retention issues by ensuring buffers and caches are properly released or capped, and by adding explicit cache management methods. These updates help prevent excessive memory usage and improve the stability of long-running or high-throughput tests.

Memory and Buffer Management:

  • Added logic to release Jetty transport buffers in HTTP2FutureResponseListener to avoid retaining unnecessary copies of response bodies and request graphs, preventing memory leaks after sample materialization, cancellation, or failed/raced requests. [1] [2] [3] [4] [5] [6]
  • Updated HTTP2JettyClient to cap the pooled buffer memory by introducing a configurable maximum for the ArrayByteBufferPool, and provided a method to clear the buffer pool. [1] [2] [3]

Protocol Cache Management:

  • Introduced soft limits and explicit TTL-based pruning for protocol negotiation caches (Alt-Svc, HTTP/1.1-only, H2C, and HTTP/3 exploration), including static methods to clear or prune expired entries and prevent unbounded cache growth. [1] [2]

Compression and Decoder Resource Handling:

  • Added explicit management and capping of the gzip InflaterPool and other compression-related resources to prevent retention of large pools per thread. [1] [2]

Transaction Sample Lifecycle Improvements:

  • Ensured that completed parent transaction samples are released from the TestCompiler map after listeners and assertions have run, mirroring upstream JMeter fixes and preventing retention of large sample trees.

Async Sample Cleanup:

  • Ensured that pending async HTTP/2 samples are fully cleared, including dropping references to response/request graphs, when an iteration is aborted.

@3dgiordano
3dgiordano merged commit b5954b8 into development Aug 6, 2026
2 checks passed
@3dgiordano
3dgiordano deleted the PERF-IMPROVEMENTS branch August 6, 2026 06:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant