Project Loom VirtualThreads hang

robert engels rengels at ix.netcom.com
Fri Jan 6 00:27:53 UTC 2023


Thanks. The surprising aspect is that the performance hit was present even when the debugger was not attached.

> On Jan 5, 2023, at 9:28 AM, Alan Bateman <Alan.Bateman at oracle.com> wrote:
> 
> On 05/01/2023 12:36, robert engels wrote:
>> :
>> 
>> The system cpu is < 3% and the idle is < 3%. The system % is much closer to the ideal for a test like this. Somewhat unexpected, but any spinning for locks now has a detrimental effect on performance.:
>> 
>> Can you briefly describe what that runtime option does?
>> 
> 
> The interface for debuggers, profilers, and other tooling is the JVM Tool Interface. This is a native interface and poses a number of challenges for areas of the runtime that are implemented in Java code rather than in the VM. Right now, there are some scalability and performance issues with JVMTI when using virtual threads. Work is in progress to address some of this. In the mean-time, it means that some proifiling tools may impact performance and skew profiles. The XX flag disables calls into the VM to notify JVMTI when virtual threads are parking/unparking, something that an async profiler probably doesn't need. That mechanism also has a mutex in the VM to coordinate the thread transitions which I think is the surprising sys time that you saw in the original profile.
> 
> -Alan



More information about the loom-dev mailing list