I have no message in log.

I going 2 time in this method. First time the cache is empty and i'm comming
with 1600 element, wich was stored un the cache, and the second time with
5500 elements. It's the second time the slowest one (1m/100 elements).

I have the tmp file with (about 4Mo).

Here is my new cache.cff

# DEFAULT CACHE REGION

jcs.default=
jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=10000
jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru
.LRUMemoryCache

# System CACHE REGION
jcs.system.groupIdCache=
jcs.system.groupIdCache.cacheattributes=org.apache.jcs.engine.CompositeCache
Attributes
jcs.system.groupIdCache.cacheattributes.MaxObjects=10000
jcs.system.groupIdCache.cacheattributes.MemoryCacheName=org.apache.jcs.engin
e.memory.lru.LRUMemoryCache

# PRE-DEFINED CACHE REGIONS

jcs.region.HandlerDonnees=
jcs.region.HandlerDonnees.cacheattributes=org.apache.jcs.engine.CompositeCac
heAttributes
jcs.region.HandlerDonnees.cacheattributes.MaxObjects=1000
jcs.region.HandlerDonnees.cacheattributes.MemoryCacheName=org.apache.jcs.eng
ine.memory.lru.LRUMemoryCache
jcs.region.HandlerDonnees.cacheattributes.MaxMemoryIdleTimeSeconds=3600
jcs.region.HandlerDonnees.cacheattributes.ShrinkerIntervalSeconds=60

jcs.region.Handler=
jcs.region.Handler.cacheattributes=org.apache.jcs.engine.CompositeCacheAttri
butes
jcs.region.Handler.cacheattributes.MaxObjects=10000
jcs.region.Handler.cacheattributes.UseMemoryShrinker=false
jcs.region.Handler.cacheattributes.MemoryCacheName=org.apache.jcs.engine.mem
ory.lru.LRUMemoryCache
jcs.region.Handler.cacheattributes.MaxMemoryIdleTimeSeconds=3600
jcs.region.Handler.cacheattributes.ShrinkerIntervalSeconds=60

Here is my new code :

        private Handler()
        {
                try
                {
                        cache = JCS.getInstance("Handler");
                        //hashCache = new Hashtable ();
                }
                catch (Exception e)
                {
                        // Handle cache region initialization failure
                        e.printStackTrace();
                }
        }




Reading .....

Vector enCache = new Vector ();
Vector aTraiter = new Vector ();
try
{
        System.out.println (System.currentTimeMillis());
        for (int indexMot = 0; indexMot < mots.size(); indexMot++)
        {
                if (indexMot % 100 == 0)
                        System.out.println (indexMot + " = " +
System.currentTimeMillis());
                String mot = (String) mots.elementAt(indexMot);
                ArrayList liste = (ArrayList) cache.get(mot + suffix);
                if (liste == null)
                        aTraiter.addElement (mot);
                else
                        enCache.addElement (mot);
        }
        System.out.println (System.currentTimeMillis());
}
catch (Exception e)
{
        e.printStackTrace();
}



Writting ...

try
{
        // On ajout un caractere à la fin car le cache n'aime pas
        // certains caracteres spéciaux à la fin... La, on est sur.
        cache.put(motATraiter + suffix, result.elementAt(indexATraiter));
}
catch (Exception e)
{
        e.printStackTrace();
}


And the output ...

0 = 1074632894084
100 = 1074632911838
200 = 1074632928444
300 = 1074632944970
400 = 1074632961469

(around 16s per 100 elements ... less than 1s with hashtable)

But I have 8 line in log for each element read : 

2004-01-20 16:10:43,702 DEBUG [org.apache.jcs.engine.control.CompositeCache]
Handler - Miss
2004-01-20 16:10:43,702 DEBUG [org.apache.jcs.engine.control.CompositeCache]
get: key = Clinically, localOnly = false
2004-01-20 16:10:43,702 DEBUG
[org.apache.jcs.engine.memory.lru.LRUMemoryCache] getting item from cache
Handler for key Clinically_
2004-01-20 16:10:43,702 DEBUG
[org.apache.jcs.engine.memory.lru.LRUMemoryCache] Handler: LRUMemoryCache
miss for Clinically_
2004-01-20 16:10:43,702 DEBUG
[org.apache.jcs.engine.memory.lru.LRUMemoryCache] verifycache[Handler]:
mapContains 1635 elements, linked list contains 1635 elements
2004-01-20 16:10:43,702 DEBUG
[org.apache.jcs.engine.memory.lru.LRUMemoryCache] verifycache: checking
linked list by key
2004-01-20 16:10:43,703 DEBUG
[org.apache.jcs.engine.memory.lru.LRUMemoryCache] verifycache: checking
linked list by value
2004-01-20 16:10:43,784 DEBUG
[org.apache.jcs.engine.memory.lru.LRUMemoryCache] verifycache: checking via
keysets!
2004-01-20 16:10:43,872 DEBUG [org.apache.jcs.engine.control.CompositeCache]
Handler - Miss

Maybe it's comming from here ? How can I disable the log ? Is it maybe JBoss
who activate this ?

-----Original Message-----
From: Aaron Smuts [mailto:[EMAIL PROTECTED]
Sent: Tuesday, January 20, 2004 3:43 PM
To: 'Turbine JCS Users List'
Subject: RE: Is JCS slow ?


I'm not sure what is going on.  Are you getting any errors in the logs?

Your test will be off if you call the slow Date(), over and over again
in System.out.println (new Date ());  You should use the system
currenttimemillis.  

Alos, you might want to use an ArrayList rather than a vector here.

That's irrelevant though.  

You are getting an instance of a region that doesn't exit.  You don't
have a region called "handler," so it will return a new region using the
default settings.

Get a region that you have defined in the cache.ccf, not just the
default, and then try two things.  Set the usememoryshrinker to false.
See if this helps.  Then try increasing the maxobjects to a number
greater that you are using.  Test again.  I just want to diagnose the
problem.  You might also try not setting the maxideltime.

When you were using the diskcahe, were any files created?

Aaron



> -----Original Message-----
> From: Spaggiari, Jean-Marc [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, January 20, 2004 2:14 PM
> To: 'Turbine JCS Users List'
> Subject: RE: Is JCS slow ?
> 
> I am caching String (key) for Vector (value) ...
> 
> But I found somethings. Y have a disk cache. By disable it, I can
improved
> my speed when cache is empty. But if I fill cache with 1600 items, it
take
> about 1 min for looking for 100 items inside :(
> 
> Here is my cache.cff file, the code follow ...
> 
> I'm trying with Hashtable, but I really don't like it :(
> 
> # DEFAULT CACHE REGION
> 
> jcs.default=
>
jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttribut
es
> jcs.default.cacheattributes.MaxObjects=1000
>
jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory
.l
> ru
> .LRUMemoryCache
> 
> # System CACHE REGION
> jcs.system.groupIdCache=
>
jcs.system.groupIdCache.cacheattributes=org.apache.jcs.engine.CompositeC
ac
> he
> Attributes
> jcs.system.groupIdCache.cacheattributes.MaxObjects=10000
>
jcs.system.groupIdCache.cacheattributes.MemoryCacheName=org.apache.jcs.e
ng
> in
> e.memory.lru.LRUMemoryCache
> 
> # PRE-DEFINED CACHE REGIONS
> 
> jcs.region.testCache1=
>
jcs.region.testCache1.cacheattributes=org.apache.jcs.engine.CompositeCac
he
> At
> tributes
> jcs.region.testCache1.cacheattributes.MaxObjects=1000
>
jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.jcs.eng
in
> e.
> memory.lru.LRUMemoryCache
> jcs.region.testCache1.cacheattributes.UseMemoryShrinker=true
> jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=3600
> jcs.region.testCache1.cacheattributes.ShrinkerIntervalSeconds=60
> 
> jcs.region.HandlerDonnees=
>
jcs.region.HandlerDonnees.cacheattributes=org.apache.jcs.engine.Composit
eC
> ac
> heAttributes
> jcs.region.HandlerDonnees.cacheattributes.MaxObjects=1000
>
jcs.region.HandlerDonnees.cacheattributes.MemoryCacheName=org.apache.jcs
.e
> ng
> ine.memory.lru.LRUMemoryCache
>
jcs.region.HandlerDonnees.cacheattributes.MaxMemoryIdleTimeSeconds=3600
> jcs.region.HandlerDonnees.cacheattributes.ShrinkerIntervalSeconds=60
> 
> 
> # AVAILABLE AUXILIARY CACHES
>
jcs.auxiliary.DC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheF
ac
> to
> ry
>
jcs.auxiliary.DC.attributes=org.apache.jcs.auxiliary.disk.indexed.Indexe
dD
> is
> kCacheAttributes
> jcs.auxiliary.DC.attributes.DiskPath=/tmp
> 
> 
> 
> Initialisation in constructor ... (Handler is different than
> HandlerDonnees)
> 
>         private Handler()
>         {
>                 try
>                 {
>                         //cache = JCS.getInstance("Handler");
>                         hashCache = new Hashtable ();
>                 }
>                 catch (Exception e)
>                 {
>                         // Handle cache region initialization failure
>                         e.printStackTrace();
>                 }
>         }
> 
> 
> Reading the cache :
> 
>  Vector enCache = new Vector ();
>  Vector aTraiter = new Vector ();
>  try
>  {
>          System.out.println (new Date ());
>          for (int indexMot = 0; indexMot < mots.size(); indexMot++)
>          {
>                  if (indexMot % 100 == 0)
>                          System.out.println (indexMot + " = " + new
Date
> ());
>                  String mot = (String) mots.elementAt(indexMot);
>                  Vector liste = (Vector) hashCache.get(mot + suffix);
>                  if (liste == null)
>                          aTraiter.addElement (mot);
>                  else
>                          enCache.addElement (mot);
>          }
>          System.out.println (new Date ());
>  }
>  catch (Exception e)
>  {
>          e.printStackTrace();
>  }
> 
> 
> Writing in cache :
> 
> 
>                    try
>                    {
>                            hashCache.put(motATraiter + suffix,
> result.elementAt(indexATraiter));
>                    }
>                    catch (Exception e)
>                    {
>                            e.printStackTrace();
>                    }
> 
> 
> -----Original Message-----
> From: Aaron Smuts [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, January 20, 2004 3:07 PM
> To: 'Turbine JCS Users List'
> Subject: RE: Is JCS slow ?
> 
> 
> No, no one has ever asked if JCS is slow.  Something is definitely
> wrong.  The cache is not significantly slower than a hashtable.  Can
you
> give more details about your configuration (i.e. the cache.ccf file)
and
> what you are caching.
> 
> > -----Original Message-----
> > From: Spaggiari, Jean-Marc [mailto:[EMAIL PROTECTED]
> > Sent: Tuesday, January 20, 2004 1:18 PM
> > To: '[EMAIL PROTECTED]'
> > Subject: Is JCS slow ?
> >
> > Hi all.
> >
> > Sorry if it's a question that you have always see, but i'm not able
to
> > look
> > at the archives ...
> >
> > I'm using JCS in an application where i need to look 1600 time on
the
> > cache
> > in a loop.
> >
> > The cache is empty at this time.
> >
> > For loop take about 160 seconds.
> >
> > Using hashtable instead of JCS take about 1s ...
> >
> > Where is my mistake ? Because I think I have do a mistake. It's not
> > posible
> > that JCS was 160 time slower than a Hashable ...
> >
> > An running JCS in a servlet on JBoss. Is it posible it come from
here
> ?
> >
> > Thanks for your help.
> >
> > JMS.
> >
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> > For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
[EMAIL PROTECTED]
> For additional commands, e-mail:
[EMAIL PROTECTED]
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
[EMAIL PROTECTED]
> For additional commands, e-mail:
[EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to