Interpretation of results

Questions about YourKit Java Profiler
Post Reply
johannes
Posts: 4
Joined: Thu Apr 07, 2022 8:53 pm

Interpretation of results

Post by johannes »

Image

This is the (main) thread of a JUnit Gradle test, which imports a 3,8 Gb JSON file into my application/the Sirix database resource. I'm trying to find latency issues, as the insertion speed is approximately 4min and I/O only about 12 mb/s, which doesn't saturate a "modern" SSD or even an HDD. The pure reading/parsing speed of GSON itself of the file is about 190 mb/s, so Sirix currently has a very high overhead.

How is it possible that CPU usage is so low, but pure CPU time of 3:30min seems to be a lot? I'm thus not sure if it's a problem to tackle with a CPU-based flame graph or something entirely else (with the CPU-based flame graph, I could fix some issues in the last couple of months already, but I think it doesn't look unusual now, but I'm not sure). A wall-clock-based flame graph is in this issue: https://github.com/sirixdb/sirix/issues/558
johannes
Posts: 4
Joined: Thu Apr 07, 2022 8:53 pm

Re: Interpretation of results

Post by johannes »

Also regarding the flame graph shown in the linked tread (based on wall clock time): What does it mean if the ForkJoinWorkerThread only has a small time actually doing stuff on the CPU, but overall time / with is rather large? I guess it's normal as these workers are mostly parked and wait for work? However, the small CPU utilization of the Gradle test thread really bothers me.
Post Reply