1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.supercsv.benchmark;
17
18 import static org.junit.Assert.assertEquals;
19 import static org.junit.Assert.assertNotNull;
20
21 import java.io.Reader;
22 import java.util.List;
23 import java.util.Map;
24
25 import org.supercsv.cellprocessor.ift.CellProcessor;
26 import org.supercsv.io.CsvBeanReader;
27 import org.supercsv.io.CsvListReader;
28 import org.supercsv.io.CsvMapReader;
29 import org.supercsv.io.ICsvBeanReader;
30 import org.supercsv.io.ICsvListReader;
31 import org.supercsv.io.ICsvMapReader;
32 import org.supercsv.io.dozer.CsvDozerBeanReader;
33 import org.supercsv.io.dozer.ICsvDozerBeanReader;
34 import org.supercsv.prefs.CsvPreference;
35
36 import com.carrotsearch.junitbenchmarks.AbstractBenchmark;
37
38
39
40
41
42
43
44
45
46
47
48
49
50 public abstract class AbstractCsvReadingBenchmark extends AbstractBenchmark {
51
52
53
54
55
56
57
58
59
60
61
62
63 public void timeCsvListReader(final Reader reader,
64 final CsvPreference preference, final int rows) throws Exception {
65
66 ICsvListReader listReader = null;
67 try {
68 listReader = new CsvListReader(reader, preference);
69
70 final String[] header = listReader.getHeader(true);
71 assertNotNull(header);
72
73 for (int j = 0; j < rows; j++) {
74 final List<String> row = listReader.read();
75 assertNotNull(row);
76 }
77
78 assertEquals(rows + 1, listReader.getRowNumber());
79
80 } finally {
81 listReader.close();
82
83 }
84
85 }
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 public void timeCsvListReaderUsingProcessors(final Reader reader,
101 final CsvPreference preference, final CellProcessor[] processors,
102 final int rows) throws Exception {
103
104 ICsvListReader listReader = null;
105 try {
106 listReader = new CsvListReader(reader, preference);
107
108 final String[] header = listReader.getHeader(true);
109 assertNotNull(header);
110
111 for (int j = 0; j < rows; j++) {
112 final List<Object> row = listReader.read(processors);
113 assertNotNull(row);
114 }
115
116 assertEquals(rows + 1, listReader.getRowNumber());
117
118 } finally {
119 listReader.close();
120 }
121 }
122
123
124
125
126
127
128
129
130
131
132
133
134 public void timeCsvMapReader(final Reader reader,
135 final CsvPreference preference, final int rows) throws Exception {
136
137 ICsvMapReader mapReader = null;
138 try {
139 mapReader = new CsvMapReader(reader, preference);
140
141 final String[] header = mapReader.getHeader(true);
142 assertNotNull(header);
143
144 for (int j = 0; j < rows; j++) {
145 final Map<String, String> row = mapReader.read(header);
146 assertNotNull(row);
147 }
148
149 assertEquals(rows + 1, mapReader.getRowNumber());
150
151 } finally {
152 mapReader.close();
153 }
154 }
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169 public void timeCsvMapReaderUsingProcessors(final Reader reader,
170 final CsvPreference preference, final CellProcessor[] processors,
171 final int rows) throws Exception {
172
173 ICsvMapReader mapReader = null;
174 try {
175 mapReader = new CsvMapReader(reader, preference);
176
177 final String[] header = mapReader.getHeader(true);
178 assertNotNull(header);
179
180 for (int j = 0; j < rows; j++) {
181 final Map<String, Object> row = mapReader.read(header,
182 processors);
183 assertNotNull(row);
184 }
185
186 assertEquals(rows + 1, mapReader.getRowNumber());
187
188 } finally {
189 mapReader.close();
190 }
191 }
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206 public void timeCsvBeanReader(final Reader reader,
207 final CsvPreference preference, final Class<?> beanClass,
208 final int rows) throws Exception {
209
210 ICsvBeanReader beanReader = null;
211 try {
212 beanReader = new CsvBeanReader(reader, preference);
213
214 final String[] header = beanReader.getHeader(true);
215 assertNotNull(header);
216
217 for (int j = 0; j < rows; j++) {
218 final Object bean = beanReader.read(beanClass, header);
219 assertNotNull(bean);
220 }
221
222 assertEquals(rows + 1, beanReader.getRowNumber());
223
224 } finally {
225 beanReader.close();
226 }
227 }
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244 public void timeCsvBeanReaderUsingProcessors(final Reader reader,
245 final CsvPreference preference, final Class<?> beanClass,
246 final CellProcessor[] processors, final int rows) throws Exception {
247
248 ICsvBeanReader beanReader = null;
249 try {
250 beanReader = new CsvBeanReader(reader, preference);
251
252 String[] header = beanReader.getHeader(true);
253 assertNotNull(header);
254
255 for (int j = 0; j < rows; j++) {
256 final Object bean = beanReader.read(beanClass, header,
257 processors);
258 assertNotNull(bean);
259 }
260
261 assertEquals(rows + 1, beanReader.getRowNumber());
262
263 } finally {
264 beanReader.close();
265 }
266 }
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281 public void timeCsvDozerBeanReader(final Reader reader,
282 final CsvPreference preference, final Class<?> beanClass,
283 final int rows) throws Exception {
284
285 ICsvDozerBeanReader dozerBeanReader = null;
286 try {
287 dozerBeanReader = new CsvDozerBeanReader(reader, preference);
288
289 final String[] header = dozerBeanReader.getHeader(true);
290 assertNotNull(header);
291
292 dozerBeanReader.configureBeanMapping(beanClass, header);
293
294 for (int j = 0; j < rows; j++) {
295 final Object bean = dozerBeanReader.read(beanClass);
296 assertNotNull(bean);
297 }
298
299 assertEquals(rows + 1, dozerBeanReader.getRowNumber());
300
301 } finally {
302 dozerBeanReader.close();
303 }
304 }
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321 public void timeCsvDozerBeanReaderUsingProcessors(final Reader reader,
322 final CsvPreference preference, final Class<?> beanClass,
323 final CellProcessor[] processors, final int rows) throws Exception {
324
325 ICsvDozerBeanReader dozerBeanReader = null;
326 try {
327 dozerBeanReader = new CsvDozerBeanReader(reader, preference);
328
329 final String[] header = dozerBeanReader.getHeader(true);
330 assertNotNull(header);
331
332 dozerBeanReader.configureBeanMapping(beanClass, header);
333
334 for (int j = 0; j < rows; j++) {
335 final Object bean = dozerBeanReader.read(beanClass, processors);
336 assertNotNull(bean);
337 }
338
339 assertEquals(rows + 1, dozerBeanReader.getRowNumber());
340
341 } finally {
342 dozerBeanReader.close();
343 }
344 }
345
346 }