RFR: 7264: Improve the performance of the JFR parser

Jean-Philippe Bempel jpbempel at openjdk.java.net
Mon Jun 14 08:15:15 UTC 2021


When parsing a JFR file, StackFrames are the objects that are the most
deserialized using Readers.
By default, JMC core parser used a generic ReflectiveReaders
which use reflection to parser the structure. However, we have known
objects like stack frames where we could directly map to the typed
object instead on relying on reflection, which speed up significantly
the parsing.

Here the results for c5.xlarge instance single threaded parsing with 24MB jfr recording with 100 iterations:

| runs | baseline | specific readers optim | improvement |
| --- | --- | --- | --- |
| run 1 | 54,317ms | 39,623ms | -27% |
| run 2 | 54,988ms | 39,520ms | -28% |
| run 3 | 54,209ms | 39,904ms | -26% |

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

Commit messages:
 - 7264: Improve the performance of the JFR parser

Changes: https://git.openjdk.java.net/jmc/pull/266/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=266&range=00
  Issue: https://bugs.openjdk.java.net/browse/JMC-7264
  Stats: 72 lines in 2 files changed: 71 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jmc/pull/266.diff
  Fetch: git fetch https://git.openjdk.java.net/jmc pull/266/head:pull/266

PR: https://git.openjdk.java.net/jmc/pull/266


More information about the jmc-dev mailing list