@@ -32,7 +32,7 @@ fn criterion_benchmark(c: &mut Criterion) {
32
32
let mut group = c. benchmark_group ( "arrow_ipc_reader" ) ;
33
33
34
34
group. bench_function ( "StreamReader/read_10" , |b| {
35
- let buffer = ipc_stream ( ) ;
35
+ let buffer = ipc_stream ( IpcWriteOptions :: default ( ) ) ;
36
36
b. iter ( move || {
37
37
let projection = None ;
38
38
let mut reader = StreamReader :: try_new ( buffer. as_slice ( ) , projection) . unwrap ( ) ;
@@ -44,7 +44,7 @@ fn criterion_benchmark(c: &mut Criterion) {
44
44
} ) ;
45
45
46
46
group. bench_function ( "StreamReader/no_validation/read_10" , |b| {
47
- let buffer = ipc_stream ( ) ;
47
+ let buffer = ipc_stream ( IpcWriteOptions :: default ( ) ) ;
48
48
b. iter ( move || {
49
49
let projection = None ;
50
50
let mut reader = StreamReader :: try_new ( buffer. as_slice ( ) , projection) . unwrap ( ) ;
@@ -60,7 +60,11 @@ fn criterion_benchmark(c: &mut Criterion) {
60
60
} ) ;
61
61
62
62
group. bench_function ( "StreamReader/read_10/zstd" , |b| {
63
- let buffer = ipc_stream_zstd ( ) ;
63
+ let buffer = ipc_stream (
64
+ IpcWriteOptions :: default ( )
65
+ . try_with_compression ( Some ( CompressionType :: ZSTD ) )
66
+ . unwrap ( ) ,
67
+ ) ;
64
68
b. iter ( move || {
65
69
let projection = None ;
66
70
let mut reader = StreamReader :: try_new ( buffer. as_slice ( ) , projection) . unwrap ( ) ;
@@ -72,7 +76,11 @@ fn criterion_benchmark(c: &mut Criterion) {
72
76
} ) ;
73
77
74
78
group. bench_function ( "StreamReader/no_validation/read_10/zstd" , |b| {
75
- let buffer = ipc_stream_zstd ( ) ;
79
+ let buffer = ipc_stream (
80
+ IpcWriteOptions :: default ( )
81
+ . try_with_compression ( Some ( CompressionType :: ZSTD ) )
82
+ . unwrap ( ) ,
83
+ ) ;
76
84
b. iter ( move || {
77
85
let projection = None ;
78
86
let mut reader = StreamReader :: try_new ( buffer. as_slice ( ) , projection) . unwrap ( ) ;
@@ -164,24 +172,9 @@ fn criterion_benchmark(c: &mut Criterion) {
164
172
}
165
173
166
174
/// Return an IPC stream with 10 record batches
167
- fn ipc_stream ( ) -> Vec < u8 > {
175
+ fn ipc_stream ( options : IpcWriteOptions ) -> Vec < u8 > {
168
176
let batch = create_batch ( 8192 , true ) ;
169
177
let mut buffer = Vec :: with_capacity ( 2 * 1024 * 1024 ) ;
170
- let mut writer = StreamWriter :: try_new ( & mut buffer, batch. schema ( ) . as_ref ( ) ) . unwrap ( ) ;
171
- for _ in 0 ..10 {
172
- writer. write ( & batch) . unwrap ( ) ;
173
- }
174
- writer. finish ( ) . unwrap ( ) ;
175
- buffer
176
- }
177
-
178
- /// Return an IPC stream with ZSTD compression with 10 record batches
179
- fn ipc_stream_zstd ( ) -> Vec < u8 > {
180
- let batch = create_batch ( 8192 , true ) ;
181
- let mut buffer = Vec :: with_capacity ( 2 * 1024 * 1024 ) ;
182
- let options = IpcWriteOptions :: default ( )
183
- . try_with_compression ( Some ( CompressionType :: ZSTD ) )
184
- . unwrap ( ) ;
185
178
let mut writer =
186
179
StreamWriter :: try_new_with_options ( & mut buffer, batch. schema ( ) . as_ref ( ) , options) . unwrap ( ) ;
187
180
for _ in 0 ..10 {
0 commit comments