1 package org.apache.commons.jcs.auxiliary.disk.indexed;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import junit.framework.TestCase;
23 import org.apache.commons.jcs.JCS;
24 import org.apache.commons.jcs.access.CacheAccess;
25
26
27
28
29
30
31 public class HugeQuantityIndDiskCacheLoadTest
32 extends TestCase
33 {
34
35 @Override
36 public void setUp()
37 {
38 JCS.setConfigFilename( "/TestDiskCacheHuge.ccf" );
39 }
40
41
42
43
44
45
46
47 public void testLargeNumberOfItems()
48 throws Exception
49 {
50 int items = 300000;
51 String region = "testCache1";
52
53 CacheAccess<String, String> jcs = JCS.getInstance( region );
54
55 try
56 {
57 System.out.println( "Start: " + measureMemoryUse() );
58
59
60
61 for ( int i = 0; i <= items; i++ )
62 {
63 jcs.put( i + ":key", region + " data " + i );
64 }
65
66 System.out.println( jcs.getStats() );
67 System.out.println( "--------------------------" );
68 System.out.println( "After put: " + measureMemoryUse() );
69
70 Thread.sleep( 5000 );
71
72 System.out.println( jcs.getStats() );
73 System.out.println( "--------------------------" );
74 System.out.println( "After wait: " + measureMemoryUse() );
75
76
77
78 for ( int i = 0; i <= items; i++ )
79 {
80 String value = jcs.get( i + ":key" );
81
82 assertEquals( region + " data " + i, value );
83 }
84
85 System.out.println( "After get: " + measureMemoryUse() );
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 }
101 finally
102 {
103
104 System.out.println( jcs.getStats() );
105 System.out.println( "--------------------------" );
106 System.out.println( "End: " + measureMemoryUse() );
107 }
108 }
109
110
111
112
113
114
115
116 protected long measureMemoryUse()
117 throws InterruptedException
118 {
119 System.gc();
120 Thread.sleep( 3000 );
121 System.gc();
122 return Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
123 }
124 }