Oh, sorry I didn't notice the github link (it's 5 'o clock in the morning here :-D ). Also why thirty 1mb buffers? Il giorno 08/nov/2012 06:11, "Christoph Engelbert" <[email protected]> ha scritto:
> Unsafe allocator alone won't speed it up that much because I guess he > relied on standard Serialization for his test. > > > > "Raffaele P. Guidi" <[email protected]> schrieb: > > >I don't believe integers or even 1kb buffers are the right case for > >directmemory. Small keys, large payloads (+4kb) are. In any case: how > >were > >the heap and xxmaxdirectmemory settings? And did you try the Unsafe > >storage > >as well? It would be helpful if you could share the benchmark code. > > > >Thanks, > > R > >Il giorno 08/nov/2012 02:49, "Jan Kotek" <[email protected]> ha scritto: > > > >> Hi, > >> > >> MapDB now has DirectMemory storage. > >> I made little test to compare our two libraries + java.util.TreeMap > >> > >> All tests are on 64bit Linux, 16GB RAM, JDK6. Default JVM settings. > >> Source code is here: https://github.com/jankotek/** > >> > >mapdb-junk/tree/master/src/**main/java/**directMemoryBenchmark< > https://github.com/jankotek/mapdb-junk/tree/master/src/main/java/directMemoryBenchmark > > > >> > >> > >> First is performance test. How long does it take to insert and fetch > >1 > >> million records, each 1KB large. > >> - DM - 6901 ms > >> - MapDB - 2045 ms > >> - java.util.TreeMap - 940 ms > >> > >> Second is overhead test. It inserts pair of integers in cycle, until > >JVM > >> runs out of memory. > >> It should measure how much memory library each consumes for its own > >> structures. > >> - DM - inserts 9 000 000 records and then it becomes very slow. > >Profiler > >> shows high GC activity. > >> - MapDB - works about 10 minutes and than it runs out of memory with > > 217 > >> 000 000 records. > >> - java.util.TreeMap - crashes after 99 000 000 records , it consumed > >> about 12GB heap. > >> > >> > >> I am not sure I configured DM correctly, JVM kept crashing when I > >> increased size too much. > >> I ended with this setting: > >> > >> CacheService<Object, Object> m = new DirectMemory<Object, > >Object>() > >> .setNumberOfBuffers( 30 ) > >> .setSize((int) 1e8) > >> .setInitialCapacity( 10000 ) > >> .setConcurrencyLevel( 4 ) > >> .setDisposalTime(1000000) > >> .newCacheService(); > >> > >> > >> Hope this helps. > >> > >> Jan > >> > >> > > -- > Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail > gesendet.
