<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Aptos;
panose-1:2 11 0 4 2 2 2 2 2 4;}
@font-face
{font-family:"Times New Roman \(Body CS\)";
panose-1:2 11 6 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:12.0pt;
font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
span.EmailStyle19
{mso-style-type:personal-reply;
font-family:"Aptos",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
mso-ligatures:none;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:14.0pt">Hi Egor,<br>
<br>
Thank you for reporting this scalability issue when debugger is enabled.<br>
It looks like a JVMTI problem and we have some guesses but need some investigation to identify it better.<br>
<br>
Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:14.0pt">Serguei<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:14.0pt"><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="color:black">From:
</span></b><span style="color:black">serviceability-dev <serviceability-dev-retn@openjdk.org> on behalf of Egor Ushakov <egor.ushakov@jetbrains.com><br>
<b>Date: </b>Wednesday, April 2, 2025 at 3:32</span><span style="font-family:"Arial",sans-serif;color:black"> </span><span style="color:black">AM<br>
<b>To: </b>Chris Plummer <chris.plummer@oracle.com>, serviceability-dev <serviceability-dev@openjdk.java.net><br>
<b>Subject: </b>Re: Debugger overhead for virtual threads creation<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:11.0pt">Thanks Chris!<br>
<br>
I've made the bug <a href="https://youtrack.jetbrains.com/issue/IDEA-365900">https://youtrack.jetbrains.com/issue/IDEA-365900</a>
<br>
visible, there's a reproducer there.<br>
<br>
Thanks,<br>
Egor<br>
<br>
On 02.04.2025 01:39, Chris Plummer wrote:<br>
> The short answer is yes. The debug agent needs to deal with <br>
> JVMTI_EVENT_VIRTUAL_THREAD_START/END events for every virtual thread. <br>
> What makes it worse is when there are a large number of virtual <br>
> threads that are currently alive. They are tracked on a list of <br>
> ThreadNodes that starts to slow down debug agent performance when it <br>
> gets too long. I have a work in progress that proactively purges these <br>
> ThreadNodes so the list does not get too big. I've been meaning to <br>
> revive this project for quite some time. If you have a test case I'd <br>
> be willing to experiment with these changes some more. I could not <br>
> access to the IDEA-365900 link you provided.<br>
><br>
> Note I think after the work is done to purge ThreadNodes proactively <br>
> it might not be that hard of step to move to not needing <br>
> JVMTI_EVENT_VIRTUAL_THREAD_START/END events enabled, which will help <br>
> performance a lot more.<br>
><br>
> Chris<br>
><br>
> On 4/1/25 10:14 AM, Egor Ushakov wrote:<br>
>> Hi everyone!<br>
>><br>
>> Is it expected that with the debugger attached creating virtual <br>
>> threads is much slower?<br>
>> We're getting bugs like: <br>
>> <a href="https://youtrack.jetbrains.com/issue/IDEA-365900">https://youtrack.jetbrains.com/issue/IDEA-365900</a><br>
>> And I can reproduce it easily with jdb...<br>
>> Just attaching the debugger immediately slows down virtual threads <br>
>> creation significantly.<br>
>><br>
>> >java <br>
>> -agentlib:jdwp=transport=dt_shmem,server=y,suspend=n,address=8000 app<br>
>> ...<br>
>> 6808805 (1.2046688E7 threads per second)<br>
>> ...<br>
>> after >jdb -attach 8000<br>
>> ...<br>
>> 30215 (95986.055 threads per second)<br>
>> ...<br>
>><br>
>> Thanks,<br>
>> Egor<o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>