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:
@@ -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"
|
||||||
|
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user