I am going to provide unit tests through which I identifies the performance issue at core JVM method
Let me provide this On Tue, 16 Jan 2024, 21:15 Christopher Schultz, < ch...@christopherschultz.net> wrote: > Hello, > > On 1/15/24 03:45, koteswara Rao Gundapaneni wrote: > > On Sun, 14 Jan 2024, 18:13 koteswara Rao Gundapaneni, < > > koti.gundapan...@gmail.com> wrote: > > > >> hi > >> > >> Daemon threads have identified the performance issue inorder to > complete . > >> > > > > > > Thread which is set as daemon by default has performance bottleneck > > > > I explain that as below > > > > myeg.setDaemon(true); > > myeg.start(); > > > > > > the above start() method is taking long time to complete which is by > > default performance bottleneck > > The Thread.start() method is not something under the control of the > Apache Tomcat team. That is a core JVM method. > > >> so bootstrap has its performance issue as this loader thread is using > >> daemon thread. > >> > > > > > > In our code base we have lot of places where we have the code as below as > > mentioned above. > > > > myeg.setDaemon(true); > > myeg.start(); > > Whose code is "our code"? > > >> inorder to resolve the issue we will yield the corresponding thread > >> > > > > > > Inorder to limit the time taking for above line of code we have the > > solution like below > > > > myeg.setDaemon(true); > > myeg.start(); > > myeg.yield(); > > How can a call to Thread.yield() which is made *after* a call to > Thread.start() make the call to Thread.start() execute more quickly? > > Here is the documentation for Thread.yield (with emphasis added by me): > > " > A hint to the scheduler that the current thread is willing to yield its > current use of a processor. **The scheduler is free to ignore this hint.** > > Yield is a heuristic attempt to improve relative progression between > threads that would otherwise over-utilise a CPU. Its use should be > combined with detailed profiling and benchmarking to ensure that it > actually has the desired effect. > > **It is rarely appropriate to use this method.** It may be useful for > debugging or testing purposes, where it may help to reproduce bugs due > to race conditions. It may also be useful when designing concurrency > control constructs such as the ones in the java.util.concurrent.locks > package. > " > > Note that calling someOtherThread.yield() actually causes the current > thread (e.g. Main in your likely example) to yield, rather than > instructing someOtherThread to yield. > > If this is intentional, it looks like what you are trying to do is > instruct the current thread to cause Thread called "myeg" (aka > someOtherThread) to start and then to immediate yield the current > thread's time back to the scheduler. > > This should not be necessary. > > > the yield method declared as above will reduce the time taking for start > > method > > > > > > > > Hope this will make sense if not I will write it in my own language > telugu. > > I get the idea you are trying to convey, but it does not make much > technical sense to me. > > Your code for Bootstrap.start() is using reflection to invoke > Catalina.start from your main thread. But you are not running any of > your own code in any non-main thread, so of course the call to > Catalina.start is taking "a long time": there is a lot of work to be > done to bring a server online. > > If you want your main thread to continue while Catalina is starting, > then you should run that in a separate thread. For example: > > new Thread(r -> catalina.start()).start(); > > If you think there is a performance problem in Apache Tomcat, the best > way to demonstrate it is with a Unit Test which reproduces the problem. > > What you are presenting appears to be either a misunderstanding of > threading in Java or a misuse of Tomcat's Catalina class. > > If you are concerned with performance, you might want to use less > reflection in your code, since it's very slow compared to direct method > invocations. > > -chris > > >> On Sun, Jan 14, 2024 at 4:13 AM Mark Thomas <ma...@apache.org> wrote: > >> > >>> You have yet to provide an explanation of the problem you are trying to > >>> solve. > >>> > >>> Unless and until you provide the information requested, further > messages > >>> from you on this topic will be ignored. > >>> > >>> Mark > >>> > >>> > >>> On 14/01/2024 12:05, koteswara Rao Gundapaneni wrote: > >>>> hi team > >>>> > >>>> before clicking the link or check new private window in mozilla > >>>> > >>>> image.png > >>>> > >>>> > >>>> > >>>> when we browse the following link > >>>> > >>>> > >>> > https://github.com/KoteswararaoGundapaneni/KotiSpringRepository/tree/master > >>> < > >>> > https://github.com/KoteswararaoGundapaneni/KotiSpringRepository/tree/master > >>>> > >>>> > >>>> > >>>> image.png > >>>> > >>>> Here the code page is shown as above > >>>> > >>>> > >>>> > >>>> On Fri, Jan 12, 2024 at 6:41 PM koteswara Rao Gundapaneni > >>>> <koti.gundapan...@gmail.com <mailto:koti.gundapan...@gmail.com>> > wrote: > >>>> > >>>> > >>>> hi mark, > >>>> > >>>> please check if the code is now available at your end I verified > >>>> from my end it can be visible > >>>> > >>>> On Fri, Jan 12, 2024 at 1:28 AM koteswara Rao Gundapaneni > >>>> <koti.gundapan...@gmail.com <mailto:koti.gundapan...@gmail.com>> > >>> wrote: > >>>> > >>>> > >>>> Sorry for the inconvenience as its been a private repo just > now > >>>> i committed my changes to a new public repo > >>>> > >>>> > >>> > https://github.com/KoteswararaoGundapaneni/KotiSpringRepository/tree/master > >>> < > >>> > https://github.com/KoteswararaoGundapaneni/KotiSpringRepository/tree/master > >>>> > >>>> > >>>> Please find my attested changes in whole file > 'Bootstrap.java'. > >>>> > >>>> > >>>> > >>>> On Fri, Jan 12, 2024 at 12:24 AM Mark Thomas < > ma...@apache.org > >>>> <mailto:ma...@apache.org>> wrote: > >>>> > >>>> On 12/01/2024 08:16, koteswara Rao Gundapaneni wrote: > >>>> > Hi Team, > >>>> > > >>>> > As its milestone contribution for me I have added my > >>>> branch along with the > >>>> > pr created, > >>>> > > >>>> > Please add the reviewer here to commit the changes. > >>>> > > >>>> > Comparing > >>> singlemanager...KoteswararaoGundapaneni-patch-1 · > >>>> > KoteswararaoGundapaneni/MYREPO (github.com > >>>> <http://github.com>) > >>>> > > >>>> < > >>> > https://github.com/KoteswararaoGundapaneni/MYREPO/compare/singlemanager...KoteswararaoGundapaneni-patch-1 > >>> < > >>> > https://github.com/KoteswararaoGundapaneni/MYREPO/compare/singlemanager...KoteswararaoGundapaneni-patch-1 > >>>>> > >>>> > >>>> That URI returns a 404. > >>>> > >>>> Unless and until you provide the information requested, > >>>> further messages > >>>> from you on this topic are likely to be ignored. > >>>> > >>>> Mark > >>>> > >>>> > >>>> > >>>> > > >>>> > > >>>> > ---------- Forwarded message --------- > >>>> > From: Mark Thomas <ma...@apache.org > >>>> <mailto:ma...@apache.org>> > >>>> > Date: Sat, Jan 6, 2024 at 2:05 AM > >>>> > Subject: Re: Supposed to provide performance at daemon > >>>> thread in tomcat > >>>> > To: <dev@tomcat.apache.org <mailto: > dev@tomcat.apache.org > >>>>> > >>>> > > >>>> > > >>>> > Please read my previous response and follow the > >>>> instructions you were given. > >>>> > > >>>> > Mark > >>>> > > >>>> > > >>>> > On 06/01/2024 06:26, koteswara Rao Gundapaneni wrote: > >>>> >> Hi All, > >>>> >> > >>>> >> Somebody helps to give permissions to create the pull > >>>> request as I have > >>>> >> been trying to give the change at latest. > >>>> >> > >>>> >> regards, > >>>> >> Koti > >>>> >> > >>>> >> On Fri, Jan 5, 2024 at 12:12 AM Mark Thomas > >>>> <ma...@apache.org <mailto:ma...@apache.org>> wrote: > >>>> >> > >>>> >>> On 05/01/2024 05:15, koteswara Rao Gundapaneni > wrote: > >>>> >>>> It seems there are further permissions to be > added at > >>>> Github > >>>> >>>> > >>>> >>>> *Error received via Github is as : **Pull request > >>>> creation failed. > >>>> >>>> Validation failed: must be a collaborator* > >>>> >>> > >>>> >>> Anyone can submit a pull request to the Tomcat > >>>> repository. The only > >>>> >>> exception is users who have been blocked for > >>> spam/abuse. > >>>> >>> > >>>> >>>> Actually i tried creating the pull request for > >>>> providing the solution > >>>> > for > >>>> >>>> daemon thread performance issue > >>>> >>> > >>>> >>> Please provide a link to your branch with the > proposed > >>> fix. > >>>> >>> > >>>> >>> Please also provide a better description of the > problem > >>>> you are trying > >>>> >>> to solve. > >>>> >>> > >>>> >>> Mark > >>>> >>> > >>>> >>>> daemonthread background processing of the thread > >>>> activity, and it's > >>>> >>> taking > >>>> >>>> significant amount of time during the tomcat > launch. > >>>> >>>> > >>>> >>>> Simple hint over the next step of the solution is > just > >>>> like > >>>> >>>> > >>>> >>>> yield() provides the greater performance to the > daemon > >>>> thread startup. > >>>> >>>> > >>>> >>>> > >>>> >>>> Regards, > >>>> >>>> Koti > >>>> >>>> > >>>> >>> > >>>> >>> > >>>> > >>> --------------------------------------------------------------------- > >>>> >>> To unsubscribe, e-mail: > >>>> dev-unsubscr...@tomcat.apache.org > >>>> <mailto:dev-unsubscr...@tomcat.apache.org> > >>>> >>> For additional commands, e-mail: > >>>> dev-h...@tomcat.apache.org <mailto: > >>> dev-h...@tomcat.apache.org> > >>>> >>> > >>>> >>> > >>>> >> > >>>> > > >>>> > > >>>> > >>> --------------------------------------------------------------------- > >>>> > To unsubscribe, e-mail: > >>> dev-unsubscr...@tomcat.apache.org > >>>> <mailto:dev-unsubscr...@tomcat.apache.org> > >>>> > For additional commands, e-mail: > >>>> dev-h...@tomcat.apache.org <mailto: > >>> dev-h...@tomcat.apache.org> > >>>> > > >>>> > >>>> > >>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: > dev-unsubscr...@tomcat.apache.org > >>>> <mailto:dev-unsubscr...@tomcat.apache.org> > >>>> For additional commands, e-mail: > dev-h...@tomcat.apache.org > >>>> <mailto:dev-h...@tomcat.apache.org> > >>>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > >>> For additional commands, e-mail: dev-h...@tomcat.apache.org > >>> > >>> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > >