On Tue, Jan 24, 2023 at 2:37 PM Romain Manni-Bucau
<rmannibu...@gmail.com> wrote:
>
> here is the idea https://github.com/apache/tomcat/pull/576

People care about stats these days and the performance benefit of
disabling this is simply not going to be there.

Rémy

>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/application-development/java-ee-8-high-performance>
>
>
> Le mar. 24 janv. 2023 à 14:24, Mark Thomas <ma...@apache.org> a écrit :
>
> > Patches welcome if that is an itch someone wants to scratch.
> >
> > Mark
> >
> >
> > On 24/01/2023 13:22, Romain Manni-Bucau wrote:
> > > If you care about the (perf) diff, shouldnt tomcat have a config to be
> > able
> > > to disable stats overhead at all (using a Runnable or Counter {incr(),
> > > get()} as abstraction is sufficient) when it is not used (most of the
> > time
> > > in dev+prod - ie not sizing/tuning phases)?
> > >
> > > Romain Manni-Bucau
> > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > <https://rmannibucau.metawerx.net/> | Old Blog
> > > <http://rmannibucau.wordpress.com> | Github <
> > https://github.com/rmannibucau> |
> > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > > <
> > https://www.packtpub.com/application-development/java-ee-8-high-performance
> > >
> > >
> > >
> > > Le mar. 24 janv. 2023 à 14:19, Rémy Maucherat <r...@apache.org> a écrit
> > :
> > >
> > >> On Tue, Jan 24, 2023 at 1:26 PM <ma...@apache.org> wrote:
> > >>>
> > >>> This is an automated email from the ASF dual-hosted git repository.
> > >>>
> > >>> markt pushed a commit to branch 9.0.x
> > >>> in repository https://gitbox.apache.org/repos/asf/tomcat.git
> > >>>
> > >>> commit a7bf4d84f753d69acb66f5e45f5bc767a1d55e49
> > >>> Author: Mark Thomas <ma...@apache.org>
> > >>> AuthorDate: Tue Jan 24 12:22:01 2023 +0000
> > >>>
> > >>>      LongAdder is a better choice for statistics collection
> > >>
> > >> Never heard of that before, but I see it's already there in Java 8.
> > >>
> > >> Rémy
> > >>
> > >>> ---
> > >>>   java/org/apache/catalina/webresources/Cache.java | 17
> > +++++++++--------
> > >>>   1 file changed, 9 insertions(+), 8 deletions(-)
> > >>>
> > >>> diff --git a/java/org/apache/catalina/webresources/Cache.java
> > >> b/java/org/apache/catalina/webresources/Cache.java
> > >>> index 949117f521..4893a289cb 100644
> > >>> --- a/java/org/apache/catalina/webresources/Cache.java
> > >>> +++ b/java/org/apache/catalina/webresources/Cache.java
> > >>> @@ -22,6 +22,7 @@ import java.util.TreeSet;
> > >>>   import java.util.concurrent.ConcurrentHashMap;
> > >>>   import java.util.concurrent.ConcurrentMap;
> > >>>   import java.util.concurrent.atomic.AtomicLong;
> > >>> +import java.util.concurrent.atomic.LongAdder;
> > >>>
> > >>>   import org.apache.catalina.WebResource;
> > >>>   import org.apache.catalina.WebResourceRoot.CacheStrategy;
> > >>> @@ -48,8 +49,8 @@ public class Cache {
> > >>>       private int objectMaxSize = (int) maxSize /
> > OBJECT_MAX_SIZE_FACTOR;
> > >>>       private CacheStrategy cacheStrategy;
> > >>>
> > >>> -    private AtomicLong lookupCount = new AtomicLong(0);
> > >>> -    private AtomicLong hitCount = new AtomicLong(0);
> > >>> +    private LongAdder lookupCount = new LongAdder();
> > >>> +    private LongAdder hitCount = new LongAdder();
> > >>>
> > >>>       private final ConcurrentMap<String, CachedResource>
> > resourceCache =
> > >> new ConcurrentHashMap<>();
> > >>>
> > >>> @@ -70,7 +71,7 @@ public class Cache {
> > >>>               }
> > >>>           }
> > >>>
> > >>> -        lookupCount.incrementAndGet();
> > >>> +        lookupCount.increment();
> > >>>
> > >>>           CachedResource cacheEntry = resourceCache.get(path);
> > >>>
> > >>> @@ -138,14 +139,14 @@ public class Cache {
> > >>>                   cacheEntry.validateResource(useClassLoaderResources);
> > >>>               }
> > >>>           } else {
> > >>> -            hitCount.incrementAndGet();
> > >>> +            hitCount.increment();
> > >>>           }
> > >>>
> > >>>           return cacheEntry;
> > >>>       }
> > >>>
> > >>>       protected WebResource[] getResources(String path, boolean
> > >> useClassLoaderResources) {
> > >>> -        lookupCount.incrementAndGet();
> > >>> +        lookupCount.increment();
> > >>>
> > >>>           // Don't call noCache(path) since the class loader only
> > caches
> > >>>           // individual resources. Therefore, always cache collections
> > >> here
> > >>> @@ -196,7 +197,7 @@ public class Cache {
> > >>>
> >  cacheEntry.validateResources(useClassLoaderResources);
> > >>>               }
> > >>>           } else {
> > >>> -            hitCount.incrementAndGet();
> > >>> +            hitCount.increment();
> > >>>           }
> > >>>
> > >>>           return cacheEntry.getWebResources();
> > >>> @@ -291,11 +292,11 @@ public class Cache {
> > >>>       }
> > >>>
> > >>>       public long getLookupCount() {
> > >>> -        return lookupCount.get();
> > >>> +        return lookupCount.sum();
> > >>>       }
> > >>>
> > >>>       public long getHitCount() {
> > >>> -        return hitCount.get();
> > >>> +        return hitCount.sum();
> > >>>       }
> > >>>
> > >>>       public void setObjectMaxSize(int objectMaxSize) {
> > >>>
> > >>>
> > >>> ---------------------------------------------------------------------
> > >>> 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
> > >>
> > >>
> > >
> >
> > ---------------------------------------------------------------------
> > 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