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