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
>>
>>

Reply via email to