Hi Maxim,
https://postimg.cc/N9n8CQW7
there you go! Do let me know if it's not up :)
Regards
Andy
On Tue, Jan 21, 2025 at 6:30 PM Maxim Solodovnik
wrote:
> your image was dropped :((
> please use some image image service and provide the URL here :))
>
> On Tue, 21 Jan 2025 at 16:40, Owner wrote:
>
> > Hey Tomcat,
> >
> > Andy here. I'm not sure if this is the place to ask this question, but I
> > wanted to check regarding performances of virtual threads vs using a
> > conventional worker thread pool.
> >
> > I set up an endpoint with a CPU task of calculating factorials like the
> > below:
> >
> > @GetMapping("/fullCPU")
> > public void allCPU() throws InterruptedException {
> > factorialCalculator();
> > }
> >
> > public void factorialCalculator() {
> > int numberOfOperations = 35;
> > BigInteger factorial = BigInteger.ONE;
> > int n = 4000;
> > for (int i = 1; i <= numberOfOperations; i++) {
> > for (int j = 1; j <= n; j++) {
> > factorial = factorial.multiply(BigInteger.valueOf(j));
> > }
> > factorial = BigInteger.ONE;
> > }
> >
> > When enabling virtual threads (using spring.virtual.threads.enabled with
> > Tomcat 10.1.33), the results I get are as follows. I utilise JMeter to do
> > stress testing -
> > [image: image.png]
> > Is there a reason why for CPU tasks, the performance for virtual threads
> > is so much worse? Theoretically both virtual threads and platform threads
> > should take the same amount of CPU time right?
> >
> > Thank you!
> >
> > Regards,
> > Andy
> >
>
>
> --
> Best regards,
> Maxim
>