Skip to content

Instantly share code, notes, and snippets.

@youngsofun
Last active May 20, 2022 13:56
Show Gist options
  • Save youngsofun/75c6420bf51fe4c63e19aa303d2e4f9d to your computer and use it in GitHub Desktop.
Save youngsofun/75c6420bf51fe4c63e19aa303d2e4f9d to your computer and use it in GitHub Desktop.
fn write_stream(col: &ColumnRef) {
let mut buf = Vec::with_capacity(1000*1000);
let s = col.data_type().create_serializer();
let mut stream = s.serialize_csv(&col, &FormatSettings::default()).unwrap();
while let Some(field) = stream.next() {
buf.extend_from_slice(field);
buf.push(b',');
}
}
fn write_vec(col: &ColumnRef) {
let mut buf = Vec::with_capacity(1000*1000);
let s = col.data_type().create_serializer();
let v = s.serialize_column(&col, &FormatSettings::default()).unwrap();
for field in v {
buf.extend_from_slice(&field.as_bytes());
buf.push(b',');
}
}
Gnuplot not found, using plotters backend
Benchmarking csv write i32 2^10 not null
Benchmarking csv write i32 2^10 not null: Warming up for 3.0000 s
Benchmarking csv write i32 2^10 not null: Collecting 100 samples in estimated 5.0493 s (495k iterations)
Benchmarking csv write i32 2^10 not null: Analyzing
csv write i32 2^10 not null
time: [10.140 us 10.153 us 10.166 us]
Found 6 outliers among 100 measurements (6.00%)
2 (2.00%) low mild
3 (3.00%) high mild
1 (1.00%) high severe
Benchmarking csv write i32 2^12 not null
Benchmarking csv write i32 2^12 not null: Warming up for 3.0000 s
Benchmarking csv write i32 2^12 not null: Collecting 100 samples in estimated 5.1627 s (106k iterations)
Benchmarking csv write i32 2^12 not null: Analyzing
csv write i32 2^12 not null
time: [47.459 us 47.629 us 47.831 us]
Benchmarking csv write i32 2^14 not null
Benchmarking csv write i32 2^14 not null: Warming up for 3.0000 s
Benchmarking csv write i32 2^14 not null: Collecting 100 samples in estimated 5.4855 s (25k iterations)
Benchmarking csv write i32 2^14 not null: Analyzing
csv write i32 2^14 not null
time: [216.46 us 217.00 us 217.62 us]
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
Benchmarking csv write i32 2^16 not null
Benchmarking csv write i32 2^16 not null: Warming up for 3.0000 s
Benchmarking csv write i32 2^16 not null: Collecting 100 samples in estimated 9.1455 s (10k iterations)
Benchmarking csv write i32 2^16 not null: Analyzing
csv write i32 2^16 not null
time: [904.87 us 905.99 us 907.16 us]
Benchmarking csv write i32 2^18 not null
Benchmarking csv write i32 2^18 not null: Warming up for 3.0000 s
Benchmarking csv write i32 2^18 not null: Collecting 100 samples in estimated 5.1667 s (1400 iterations)
Benchmarking csv write i32 2^18 not null: Analyzing
csv write i32 2^18 not null
time: [3.6859 ms 3.6916 ms 3.6973 ms]
Gnuplot not found, using plotters backend
Benchmarking csv write i32 2^10 not null
Benchmarking csv write i32 2^10 not null: Warming up for 3.0000 s
Benchmarking csv write i32 2^10 not null: Collecting 100 samples in estimated 5.1116 s (86k iterations)
Benchmarking csv write i32 2^10 not null: Analyzing
csv write i32 2^10 not null
time: [59.350 us 59.406 us 59.464 us]
change: [+483.90% +484.94% +486.03%] (p = 0.00 < 0.05)
Performance has regressed.
Found 5 outliers among 100 measurements (5.00%)
3 (3.00%) low mild
2 (2.00%) high mild
Benchmarking csv write i32 2^12 not null
Benchmarking csv write i32 2^12 not null: Warming up for 3.0000 s
Benchmarking csv write i32 2^12 not null: Collecting 100 samples in estimated 5.0646 s (20k iterations)
Benchmarking csv write i32 2^12 not null: Analyzing
csv write i32 2^12 not null
time: [248.51 us 248.81 us 249.10 us]
change: [+412.43% +414.91% +417.36%] (p = 0.00 < 0.05)
Performance has regressed.
Found 6 outliers among 100 measurements (6.00%)
1 (1.00%) low severe
3 (3.00%) low mild
2 (2.00%) high mild
Benchmarking csv write i32 2^14 not null
Benchmarking csv write i32 2^14 not null: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 5.1s, enable flat sampling, or reduce sample count to 70.
Benchmarking csv write i32 2^14 not null: Collecting 100 samples in estimated 5.0731 s (5050 iterations)
Benchmarking csv write i32 2^14 not null: Analyzing
csv write i32 2^14 not null
time: [999.72 us 1.0007 ms 1.0018 ms]
change: [+360.17% +361.29% +362.38%] (p = 0.00 < 0.05)
Performance has regressed.
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) low severe
1 (1.00%) low mild
1 (1.00%) high mild
Benchmarking csv write i32 2^16 not null
Benchmarking csv write i32 2^16 not null: Warming up for 3.0000 s
Benchmarking csv write i32 2^16 not null: Collecting 100 samples in estimated 5.2801 s (1300 iterations)
Benchmarking csv write i32 2^16 not null: Analyzing
csv write i32 2^16 not null
time: [4.0588 ms 4.0632 ms 4.0675 ms]
change: [+347.26% +347.99% +348.75%] (p = 0.00 < 0.05)
Performance has regressed.
Found 4 outliers among 100 measurements (4.00%)
4 (4.00%) low mild
Benchmarking csv write i32 2^18 not null
Benchmarking csv write i32 2^18 not null: Warming up for 3.0000 s
Benchmarking csv write i32 2^18 not null: Collecting 100 samples in estimated 6.5120 s (400 iterations)
Benchmarking csv write i32 2^18 not null: Analyzing
csv write i32 2^18 not null
time: [16.267 ms 16.281 ms 16.295 ms]
change: [+340.23% +341.02% +341.80%] (p = 0.00 < 0.05)
Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment