<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Performance</title><link>https://sourceforge.net/p/nitrocache/wiki/Performance/</link><description>Recent changes to Performance</description><atom:link href="https://sourceforge.net/p/nitrocache/wiki/Performance/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 08 May 2012 13:43:14 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/nitrocache/wiki/Performance/feed" rel="self" type="application/rss+xml"/><item><title>WikiPage Performance modified by Hitesh Amritlal Viseria</title><link>https://sourceforge.net/p/nitrocache/wiki/Performance/</link><description>&lt;pre&gt;--- v9 
+++ v10 
@@ -3,7 +3,7 @@
 
 All the performance benchmarks done in various configuration and regression testing, have delivered consistent results.
 
-NitroCache scales with O(c) as number of threads increase. The fetch time remains constant irrespective of thread load. The put time increases linearly with threads, the performance and graph curve for put is similar to ehCache.
+NitroCache scales with O(c) as number of threads increase. The fetch time remains constant irrespective of thread load. 
 
 --------------------------------------------------------
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hitesh Amritlal Viseria</dc:creator><pubDate>Tue, 08 May 2012 13:43:14 -0000</pubDate><guid>https://sourceforge.netb40bc9dc6c512863f3c103795538bbf99ac5ae9e</guid></item><item><title>WikiPage Performance modified by Hitesh Amritlal Viseria</title><link>https://sourceforge.net/p/nitrocache/wiki/Performance/</link><description>&lt;pre&gt;--- v8 
+++ v9 
@@ -6,33 +6,175 @@
 NitroCache scales with O(c) as number of threads increase. The fetch time remains constant irrespective of thread load. The put time increases linearly with threads, the performance and graph curve for put is similar to ehCache.
 
 --------------------------------------------------------
-[[img src=FetchTimeByThreadsAll.jpg alt="See Summary section for results"]]
-
---------------------------------------------------------
-
-Performance Testing
-====================
-System configuration
---------------------
-System Type: x64-based PC
-Processor: Intel(R) Core(TM) i5 CPU 650@3.20GHz, 3333 Mhz, 2 Core(s), 4 Logical Processor(s)
-OS: Windows 7
-
-
-Test Setup
------------
-Threads = 1,2,5,10,15,25,50
-Cache Sizes = 100,200,500,1000,5000,25000,50000
-Number of get operations per test = ~4000000
-Ratio of put v/s get: 20 get operations per put operation
-
+
+
+Performance Benchmark: NitroCache / EHCache / Infinispan / JCS / Cach4j
+========================================================================
+
+Goal
+========================================================================
+1. To run a fixed set of operations on 5 popular cache api and benchmark their in-memory performance, with increase in number of thread
+2. Evaluate total time for fetch, put operations and throughput (number of operations per second)
+
+System Configuration
+========================================================================
+System Type|x64-based PC|
+-----------|------------|
+Processor|Intel(R) Core(TM) i5 CPU 650@3.20GHz, 3333 Mhz, 2 Core(s), 4 Logical Processor(s)|
+OS|Windows 7|
+
+Libraries
+=======================================================================
+Cache | Library|
+------|--------|
+NitroCache|nitroCache.jar v0.4Beta|
+Cach4j|cache4j_0.4.jar|
+Ehcache|ehcache-1.2.3.jar|
+JCS|jcs-1.3.jar|
+Infinispan|core-4.0.0.Final.jar|
+
+
+
+Testing Setting: 
+========================================================================
+1. All caches set to run in complete in-memory mode
+2. Seven tests run per cache api with following setting
+3. Rest of the settings are default
+
+Setting Id|Cache Size|Threads|Number of Fetch Operations|Number of Put Operations|Number of unique keys per Thread|
+----------|----------|-------|--------------------------|------------------------|--------------------------------|
+1|5000|1|400,000,000|20,000,000|10,000,000|
+2|5000|2|400,000,000|20,000,000|5,000,000|
+3|5000|5|400,000,000|20,000,000|2,000,000|
+4|5000|10|400,000,000|20,000,000|1,000,000|
+5|5000|15|399,600,000|19,980,000|666,667|
+6|5000|25|400,000,000|20,000,000|400,000|
+7|5000|50|400,000,000|20,000,000|200,000|
+
+
+
 Test Data
----------
-A random set 2000 key-value pairs used as seed data. Refer to dataRand.csv
-
-Use cases
----------
-1. EHCache (LRU mode), In-memory mode only
-2. cache4j, In-memory mode only
-3. NitroCache - FIFO mode
-4. NitroCache - LRU mode
+========================================================================
+A random set of 2000 key/value pairs of integers used as seed data. These 2000 keys are then appended with loop id to generate secondary keys. See the AllTest.java from test-src zip in the download section for sample test.
+
+
+Results
+========================================================================
+1. Total Fetch Time in Seconds by thread
+------------------------------------------------------------------------
+
+Threads	|	Cache4j	|	EhCache	|	Infinispan	|	JCS	|	Nitro FIFO	|	Nitro LRU	|
+--------|-----------|-----------|---------------------------|-------|---------------|---------------|
+1	|	334.02	|	60.50	|	373.40	|	115.90	|	&lt;font color=green&gt;**70.10**&lt;/font&gt;	|	&lt;font color=green&gt;**61.05**&lt;/font&gt;	|
+2	|	1,132.93	|	277.37	|	474.05	|	480.35	|	&lt;font color=green&gt;**85.88**&lt;/font&gt;	|	&lt;font color=green&gt;**149.06**&lt;/font&gt;	|
+5	|	2,875.26	|	759.24	|	516.98	|	997.20	|	&lt;font color=green&gt;**126.53**&lt;/font&gt;	|	&lt;font color=green&gt;**164.87**&lt;/font&gt;	|
+10	|	5,711.93	|	1,748.20	|	495.62	|	1,497.55	|	&lt;font color=green&gt;**122.21**&lt;/font&gt;	|	&lt;font color=green&gt;**139.80**&lt;/font&gt;	|
+15	|	8,703.11	|	2,494.02	|	475.10	|	887.05	|	&lt;font color=green&gt;**122.02**&lt;/font&gt;	|	&lt;font color=green&gt;**136.11**&lt;/font&gt;	|
+25	|	14,893.28	|	4,500.01	|	443.93	|	912.71	|	&lt;font color=green&gt;**126.51**&lt;/font&gt;	|	&lt;font color=green&gt;**133.57**&lt;/font&gt;	|
+50	|	29,921.08	|	8,547.90	|	427.26	|	849.77	|	&lt;font color=green&gt;**109.96**&lt;/font&gt;	|	&lt;font color=green&gt;**132.88**&lt;/font&gt;	|
+
+
+[[img src=FetchTimeByThreadsAll.jpg alt="Graph for Fetch Time by thread"]]
+                                  
+
+2. Total Put Time in Seconds by thread
+------------------------------------------------------------------------
+
+Threads	|	Cache4j	|	EhCache	|	Infinispan	|	JCS	|	Nitro FIFO	|	Nitro LRU	|
+--------|-----------|-----------|---------------------------|-------|---------------|---------------|
+1	|	34.85	|	&lt;font color=green&gt;**23.38**&lt;/font&gt;	|	72.39	|	137.66	|	&lt;font color=green&gt;**20.66**&lt;/font&gt;	|	&lt;font color=blue&gt;**20.41**&lt;/font&gt;	|
+2	|	66.91	|	&lt;font color=green&gt;**43.46**&lt;/font&gt;	|	103.57	|	371.08	|	&lt;font color=green&gt;**50.27**&lt;/font&gt;	|	&lt;font color=blue&gt;**107.47**&lt;/font&gt;	|
+5	|	151.11	|	&lt;font color=green&gt;**94.44**&lt;/font&gt;	|	354.87	|	883.66	|	&lt;font color=green&gt;**120.11**&lt;/font&gt;	|	&lt;font color=blue&gt;**499.97**&lt;/font&gt;	|
+10	|	281.84	|	&lt;font color=green&gt;**172.47**&lt;/font&gt;	|	1,179.43	|	2,605.02	|	&lt;font color=green&gt;**444.45**&lt;/font&gt;	|	&lt;font color=blue&gt;**1,165.58**&lt;/font&gt;	|
+15	|	419.62	|	&lt;font color=green&gt;**239.93**&lt;/font&gt;	|	2,062.05	|	5,297.97	|	&lt;font color=green&gt;**731.53**&lt;/font&gt;	|	&lt;font color=blue&gt;**1,816.03**&lt;/font&gt;	|
+25	|	679.09	|	&lt;font color=green&gt;**390.27**&lt;/font&gt;	|	3,572.85	|	9,449.96	|	&lt;font color=green&gt;**1,323.78**&lt;/font&gt;	|	&lt;font color=blue&gt;**3,106.88**&lt;/font&gt;	|
+50	|	1,434.40	|	&lt;font color=green&gt;**699.67**&lt;/font&gt;	|	7,541.39	|	19,065.07	|	&lt;font color=green&gt;**2,733.08**&lt;/font&gt;	|	&lt;font color=blue&gt;**6,163.37**&lt;/font&gt;	|
+
+[[img src=PutTimeByThreadsAll.jpg alt="Graph for Put Time by thread"]
+
+
+3. Fetch Throughput: Thousand operations/second 
+------------------------------------------------------------------------
+
+Threads	|	Cache4j	|	EhCache	|	Infinispan	|	JCS	|	Nitro FIFO	|	Nitro LRU	|
+--------|-----------|-----------|---------------------------|-------|---------------|---------------|
+1	|	1,197.55	|	6,611.79	|	1,071.24	|	3,451.13	|	&lt;font color=green&gt;**5,705.89**&lt;/font&gt;	|	&lt;font color=green&gt;**6,551.68**&lt;/font&gt;	|
+2	|	353.07	|	1,442.11	|	843.79	|	832.72	|	&lt;font color=green&gt;**4,657.61**&lt;/font&gt;	|	&lt;font color=green&gt;**2,683.43**&lt;/font&gt;	|
+5	|	139.12	|	526.85	|	773.73	|	401.12	|	&lt;font color=green&gt;**3,161.21**&lt;/font&gt;	|	&lt;font color=green&gt;**2,426.17**&lt;/font&gt;	|
+10	|	70.03	|	228.81	|	807.07	|	267.10	|	&lt;font color=green&gt;**3,273.05**&lt;/font&gt;	|	&lt;font color=green&gt;**2,861.19**&lt;/font&gt;	|
+15	|	45.91	|	160.22	|	841.08	|	450.48	|	&lt;font color=green&gt;**3,274.82**&lt;/font&gt;	|	&lt;font color=green&gt;**2,935.88**&lt;/font&gt;	|
+25	|	26.86	|	88.89	|	901.05	|	438.26	|	&lt;font color=green&gt;**3,161.86**&lt;/font&gt;	|	&lt;font color=green&gt;**2,994.68**&lt;/font&gt;	|
+50	|	13.37	|	46.80	|	936.20	|	470.71	|	&lt;font color=green&gt;**3,637.69**&lt;/font&gt;	|	&lt;font color=green&gt;**3,010.19**&lt;/font&gt;	|
+
+![Graph for Fetch Throuhgput](https://sourceforge.net/p/nitrocache/wiki/Performance/attachment/FetchThroughputByThreadsAll.jpg)
+
+
+4. Total Throughput: In thousand operations/second
+------------------------------------------------------------------------
+
+Threads	|	Cache4j	|	EhCache	|	Infinispan	|	JCS	|	Nitro FIFO	|	Nitro LRU	|
+--------|-----------|-----------|---------------------------|-------|---------------|---------------|
+1	|	1,167.85	|	6,337.68	|	1,033.39	|	3,293.71	|	&lt;font color=green&gt;**5,480.28**&lt;/font&gt;	|	&lt;font color=green&gt;**6,286.36**&lt;/font&gt;	|
+2	|	350.49	|	1,395.35	|	812.80	|	795.64	|	&lt;font color=green&gt;**4,454.76**&lt;/font&gt;	|	&lt;font color=green&gt;**2,564.51**&lt;/font&gt;	|
+5	|	138.80	|	511.84	|	739.57	|	383.10	|	&lt;font color=green&gt;**3,018.60**&lt;/font&gt;	|	&lt;font color=green&gt;**2,312.54**&lt;/font&gt;	|
+10	|	70.07	|	223.43	|	769.45	|	254.75	|	&lt;font color=green&gt;**3,119.34**&lt;/font&gt;	|	&lt;font color=green&gt;**2,725.76**&lt;/font&gt;	|
+15	|	46.00	|	156.56	|	801.49	|	429.21	|	&lt;font color=green&gt;**3,120.18**&lt;/font&gt;	|	&lt;font color=green&gt;**2,796.60**&lt;/font&gt;	|
+25	|	26.98	|	87.10	|	858.41	|	417.49	|	&lt;font color=green&gt;**3,012.01**&lt;/font&gt;	|	&lt;font color=green&gt;**2,852.39**&lt;/font&gt;	|
+50	|	13.40	|	45.93	|	891.74	|	448.35	|	&lt;font color=green&gt;**3,464.81**&lt;/font&gt;	|	&lt;font color=green&gt;**2,867.00**&lt;/font&gt;	|
+
+![Graph for total throughput](https://sourceforge.net/p/nitrocache/wiki/Performance/attachment/TotalThroughputByThreadsAll.jpg)
+
+
+----------------------------------------------
+
+
+Conclusion
+==================
+1. &lt;font color=blue&gt;**NitroCache** provides **highest throughput** and a **consistent performance** irrespective of number of threads&lt;/font&gt;
+-------------------
+2. &lt;font color=amber&gt;Infinispan provides next best result in terms of throughput and fetch performance&lt;/font&gt;
+-------------------
+3. &lt;font color=amber&gt;Ehcache and cach4j are fastest for put operations but slowest for fetch&lt;/font&gt;
+-------------------
+4. &lt;font color=amber&gt;JCS is slowest for put operation but overall throughput is average, in between infinispan and Ehcache&lt;/font&gt;
+-------------------
+
+
+----------------------------------------------
+
+
+Profiling Data
+===================
+Charts of Memory usage/GC, CPU usage percentage v/s Live Thread 
+
+1. Nitro FIFO
+------------------------------------------------------------------------
+
+![JConsole Graphical output](https://sourceforge.net/p/nitrocache/wiki/Performance/attachment/NitroFIFOMemCpuThread.jpg)
+
+2. Nitro LRU
+------------------------------------------------------------------------
+
+![JConsole Graphical output](https://sourceforge.net/p/nitrocache/wiki/Performance/attachment/NitroLRUMemCpuThread.jpg)
+
+3. Cach4j
+------------------------------------------------------------------------
+
+![JConsole Graphical output](https://sourceforge.net/p/nitrocache/wiki/Performance/attachment/Cache4jMemCpuThread.jpg)
+
+4. EhCache
+------------------------------------------------------------------------
+
+![JConsole Graphical output](https://sourceforge.net/p/nitrocache/wiki/Performance/attachment/EHCacheMemCpuThread.jpg)
+
+
+5. Infinispan
+------------------------------------------------------------------------
+
+![JConsole Graphical output](https://sourceforge.net/p/nitrocache/wiki/Performance/attachment/InfinispanMemCpuThread.jpg)
+
+
+6. JCS
+------------------------------------------------------------------------
+
+![JConsole Graphical output](https://sourceforge.net/p/nitrocache/wiki/Performance/attachment/JCSMemCpuThread.jpg)
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hitesh Amritlal Viseria</dc:creator><pubDate>Tue, 08 May 2012 13:35:19 -0000</pubDate><guid>https://sourceforge.net2d31c88a1d330f9de0dfcb7b87a0b3132b1222d7</guid></item><item><title>WikiPage Performance modified by Hitesh Amritlal Viseria</title><link>https://sourceforge.net/p/nitrocache/wiki/Performance/</link><description>&lt;pre&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hitesh Amritlal Viseria</dc:creator><pubDate>Tue, 08 May 2012 06:51:40 -0000</pubDate><guid>https://sourceforge.net2c808b451c21418a591874cc7ec6de0bcc0c51bf</guid></item><item><title>WikiPage Performance modified by Hitesh Amritlal Viseria</title><link>https://sourceforge.net/p/nitrocache/wiki/Performance/</link><description>&lt;pre&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hitesh Amritlal Viseria</dc:creator><pubDate>Tue, 08 May 2012 06:30:30 -0000</pubDate><guid>https://sourceforge.net8423c1619382df02508f122c541aef65404b69bd</guid></item><item><title>WikiPage Performance modified by Hitesh Amritlal Viseria</title><link>https://sourceforge.net/p/nitrocache/wiki/Performance/</link><description>&lt;pre&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hitesh Amritlal Viseria</dc:creator><pubDate>Tue, 08 May 2012 06:07:30 -0000</pubDate><guid>https://sourceforge.netd321c06d7e21e0ab64fbecf323cf654de24f8aad</guid></item><item><title>WikiPage Performance modified by Hitesh Amritlal Viseria</title><link>https://sourceforge.net/p/nitrocache/wiki/Performance/</link><description>&lt;pre&gt;--- v4 
+++ v5 
@@ -6,7 +6,7 @@
 NitroCache scales with O(c) as number of threads increase. The fetch time remains constant irrespective of thread load. The put time increases linearly with threads, the performance and graph curve for put is similar to ehCache.
 
 --------------------------------------------------------
-![See Summary section for results](http://sourceforge.net/projects/nitrocache/screenshots/FetchTimeByThreads.jpg)
+[[img src=FetchTimeByThreadsAll.jpg alt="See Summary section for results"]]
 
 --------------------------------------------------------
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hitesh Amritlal Viseria</dc:creator><pubDate>Tue, 08 May 2012 06:06:59 -0000</pubDate><guid>https://sourceforge.neta2833bbb7d5438652219482a40be671bd077b314</guid></item><item><title>WikiPage Performance modified by Hitesh Amritlal Viseria</title><link>https://sourceforge.net/p/nitrocache/wiki/Performance/</link><description>&lt;pre&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hitesh Amritlal Viseria</dc:creator><pubDate>Tue, 08 May 2012 06:05:50 -0000</pubDate><guid>https://sourceforge.net2fc27036b231123ab46a4a03a62013ba88204870</guid></item><item><title>WikiPage Performance modified by Hitesh Amritlal Viseria</title><link>https://sourceforge.net/p/nitrocache/wiki/Performance/</link><description>&lt;pre&gt;--- v2 
+++ v3 
@@ -28,7 +28,7 @@
 
 Test Data
 ---------
-A random set 2000 key-value pairs. Refer to dataRand.csv
+A random set 2000 key-value pairs used as seed data. Refer to dataRand.csv
 
 Use cases
 ---------
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hitesh Amritlal Viseria</dc:creator><pubDate>Mon, 07 May 2012 17:24:11 -0000</pubDate><guid>https://sourceforge.net119e9a81c234d85cae1c013d3adbed41408d0a86</guid></item><item><title>WikiPage Performance modified by Hitesh Amritlal Viseria</title><link>https://sourceforge.net/p/nitrocache/wiki/Performance/</link><description>&lt;pre&gt;--- v1 
+++ v2 
@@ -6,6 +6,9 @@
 NitroCache scales with O(c) as number of threads increase. The fetch time remains constant irrespective of thread load. The put time increases linearly with threads, the performance and graph curve for put is similar to ehCache.
 
 --------------------------------------------------------
+![See Summary section for results](http://sourceforge.net/projects/nitrocache/screenshots/FetchTimeByThreads.jpg)
+
+--------------------------------------------------------
 
 Performance Testing
 ====================
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hitesh Amritlal Viseria</dc:creator><pubDate>Tue, 01 May 2012 14:55:44 -0000</pubDate><guid>https://sourceforge.netd873121b80909d974df2ad6573eab32e117e1569</guid></item><item><title>WikiPage Performance modified by Hitesh Amritlal Viseria</title><link>https://sourceforge.net/p/nitrocache/wiki/Performance/</link><description>Performance Benchmarks
======================

All the performance benchmarks done in various configuration and regression testing, have delivered consistent results.

NitroCache scales with O(c) as number of threads increase. The fetch time remains constant irrespective of thread load. The put time increases linearly with threads, the performance and graph curve for put is similar to ehCache.

--------------------------------------------------------

Performance Testing
====================
System configuration
--------------------
System Type: x64-based PC
Processor: Intel(R) Core(TM) i5 CPU 650@3.20GHz, 3333 Mhz, 2 Core(s), 4 Logical Processor(s)
OS: Windows 7


Test Setup
-----------
Threads = 1,2,5,10,15,25,50
Cache Sizes = 100,200,500,1000,5000,25000,50000
Number of get operations per test = ~4000000
Ratio of put v/s get: 20 get operations per put operation

Test Data
---------
A random set 2000 key-value pairs. Refer to dataRand.csv

Use cases
---------
1. EHCache (LRU mode), In-memory mode only
2. cache4j, In-memory mode only
3. NitroCache - FIFO mode
4. NitroCache - LRU mode
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hitesh Amritlal Viseria</dc:creator><pubDate>Mon, 30 Apr 2012 14:50:36 -0000</pubDate><guid>https://sourceforge.net177b86ff25281bb3734de090b7f5a7c481b746bd</guid></item></channel></rss>