This PR guards usage of FileForce, SocketRead, and SocketWrite events with 
`jfrTracing` to prevent those classes from being loaded when JFR is not in use. 
This is the same technique as what's currently used with exception events and 
FileRead/FileWrite events.

I used NMT and a simple test app that exercises file force and socket IO paths 
to check for a difference in memory usage.
**NMT Before:** 
Classes=1188, Metadata used=966064 B, Class space used=93008 B
**NMT After:**
Classes=1182, Metadata used=943728 B, Class space used=89456 B
Note that the difference in amount used doesn't actually change amount 
committed because the backing memory is pre-allocated in chunks with larger 
granularity.

Testing:
- new test test/jdk/jdk/jfr/event/io/TestEventsNotLoadedWithoutJfr.java to 
check the guards work properly
- tier 1

---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

-------------

Commit messages:
 - Guard file ansocket events. Tests

Changes: https://git.openjdk.org/jdk/pull/30948/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=30948&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8331996
  Stats: 242 lines in 10 files changed: 229 ins; 0 del; 13 mod
  Patch: https://git.openjdk.org/jdk/pull/30948.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/30948/head:pull/30948

PR: https://git.openjdk.org/jdk/pull/30948

Reply via email to