RFR: 7264: Improve the performance of the JFR parser [v2]

Jean-Philippe Bempel jpbempel at openjdk.java.net
Mon Jun 14 21:22:01 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.2xlarge 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% |

Jean-Philippe Bempel has updated the pull request incrementally with one additional commit since the last revision:

  Make sure field index match field name
  
  if unexpected field, fallbacks to reflective way

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

Changes:
  - all: https://git.openjdk.java.net/jmc/pull/266/files
  - new: https://git.openjdk.java.net/jmc/pull/266/files/e8b0048c..1f82885f

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=266&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=266&range=00-01

  Stats: 40 lines in 1 file changed: 36 ins; 0 del; 4 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