Use bincode instead of CBOR to cut file size by 70%

Also use a BufWriter to significantly speed up the serialization
This commit is contained in:
2020-11-27 22:37:18 -08:00
parent 2c042810d8
commit d39a13190f
2 changed files with 6 additions and 3 deletions

View File

@@ -8,6 +8,7 @@ edition = "2018"
[dependencies] [dependencies]
ansi_term = "0.12" ansi_term = "0.12"
bincode = "1.3.1"
decorum = "0.3" decorum = "0.3"
dyn-clone = "1.0" dyn-clone = "1.0"
enum_dispatch = "0.3" enum_dispatch = "0.3"

View File

@@ -10,6 +10,7 @@ use plotly;
use image::{RgbImage, Rgb}; use image::{RgbImage, Rgb};
use imageproc::{pixelops, drawing}; use imageproc::{pixelops, drawing};
use std::fs::File; use std::fs::File;
use std::io::BufWriter;
use std::path::PathBuf; use std::path::PathBuf;
use std::sync::{Mutex, RwLock}; use std::sync::{Mutex, RwLock};
use y4m; use y4m;
@@ -478,8 +479,9 @@ impl SerializerRenderer {
impl Renderer for SerializerRenderer { impl Renderer for SerializerRenderer {
fn render(&self, state: &dyn GenericSim, measurements: &[Box<dyn AbstractMeasurement>]) { fn render(&self, state: &dyn GenericSim, measurements: &[Box<dyn AbstractMeasurement>]) {
let snap = state.to_static(); let snap = state.to_static();
let name = format!("{}{}.cbor", self.out_base, snap.step_no()); let name = format!("{}{}.bc", self.out_base, snap.step_no());
let out = File::create(name).unwrap(); let out = BufWriter::new(File::create(name).unwrap());
serde_cbor::to_writer(out, &snap).unwrap(); //serde_cbor::to_writer(out, &snap).unwrap();
bincode::serialize_into(out, &snap).unwrap();
} }
} }