*DISCLAIMER: **Please do not take ***‘Throughput’ ** as we all know. For me, and here, it’s a measure of performance in terms of GC.

*DISCLAIMER:*

*Please do not take*

**‘Throughput’**as we all know. For me, and here, it’s a measure of performance in terms of GC.**All you see below was an idea that I wrote on paper and I thought of sharing it.**

**All you see below was an idea that I wrote on paper and I thought of sharing it.**

**I will try to make this idea more viable and realistic.**

**I will try to make this idea more viable and realistic.**

**Readers and Moderators – Forgive me for something that you don’t like and this effort.**

**Readers and Moderators – Forgive me for something that you don’t like and this effort.**

**Abstract:**

This weekend, I was thinking of some way to calculate the ‘Throughput’ in terms of Garbage Collection for a Server Node.

So, I started related Java with basic mathematics – and came down to derive an equation for ‘Throughput’.

Here we have some terms – Two Variables – Non GC Time and GC Time, with the help of which I have written the first equation:

**Non GC Time + GC Time = Total Time = Start to current up time**

or we can say,

**Non GC Time = ****(Total Time – GC Time) **

Now, if I want the throughput, I have to do…..

**(Non GC Time/Total Time) *10**0** = Throughput** — this should me maximum

And hence, my motive is to increase the Throughput

((Total Time – GC Time)/Total Time) * 100 = Throughput — **this should me maximum > much high **

To calculate this GC Time, I have included a new function to find it

**i.e. GC TIme = **** (N * avgGC Time )**, where **avgGC Time **is what you calculate from few random GC runs and **N** is the number of GC runs , which again you can get from std_server logs ðŸ˜›

So, now I have a new modified equation:

**((Total Time – (N * avgGC Time ))/Total Time) * 100 = Throughput(N) **

**Now if we include the number of core per CPU**

**Throughput(N,P) = avg [(Total Time – (N *avgGC Time ))/Total Time) * 100] / P **

where **P** stands for processors number of cores on multiprocessor.

**Throughput(N,P) = avg [(Total Time – (N *{Pause Time }))/Total Time) * 100] / P**

I then thought of delay, that all I included.

**Throughput(N,P) = ****∑****[(Total Time – (N *{avgGCTime + X(delay)}))/Total Time) * 100] / P **

**Now, this delay also can be used to include CMS mark times **

**Also, mark – X is directly proportional to P – one example is delay between polls in a multiprocessing architecture**

**So, finally I derived an equation to measure GC performance, which I call as Throughput for GC for a server node.**

**Throughput(N,P) =****∑****[(Total Time – (N *{avgGCTime + X(delay)}))/Total Time) * 100] / P**

** **

**Any suggestion for improvement for this novice efforts are always welcome.**

**I am trying to automate this, and future improved versions, equation on test system, and if it works I will share with you all. My own Wily ðŸ˜‰ **

**Regards,**

**Divyanshu**