hi all, On high level view if i look at up with reflection we use in tomcat code for the existing class in Bootstrap and core jvm methods internally works excellent
On Sat, Jan 20, 2024 at 11:57 PM koteswara Rao Gundapaneni < koti.gundapan...@gmail.com> wrote: > 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 >> >>