extern crate trk_io;
use std::time::Instant;
use trk_io::{Reader, TractogramItem, Writer};
fn main() {
{
println!("read_all -> write_all");
let now = Instant::now();
let mut reader = Reader::new("/mnt/c/Users/Nil/Desktop/BigScalars.trk").expect("Read header");
let tractogram = reader.read_all();
let elapsed = now.elapsed();
println!(" read_all {}.{}", elapsed.as_secs(), elapsed.subsec_nanos() / 1000000);
let now = Instant::now();
let mut writer = Writer::new(
"/mnt/c/Users/Nil/Desktop/copy.trk", Some(reader.header.clone())
).expect("Can't create trk file");
writer.write_all(tractogram);
let elapsed = now.elapsed();
println!(" write_all {}.{}", elapsed.as_secs(), elapsed.subsec_nanos() / 1000000);
}
{
println!("read_all -> iter write");
let now = Instant::now();
let mut reader = Reader::new("/mnt/c/Users/Nil/Desktop/BigScalars.trk").expect("Read header");
let tractogram = reader.read_all();
let elapsed = now.elapsed();
println!(" read_all {}.{}", elapsed.as_secs(), elapsed.subsec_nanos() / 1000000);
let now = Instant::now();
let mut writer = Writer::new(
"/mnt/c/Users/Nil/Desktop/copy.trk", Some(reader.header.clone())
).expect("Can't create trk file");
for item in tractogram.into_iter() {
writer.write(item);
}
let elapsed = now.elapsed();
println!(" write_all {}.{}", elapsed.as_secs(), elapsed.subsec_nanos() / 1000000);
}
{
println!("read_all -> iter write only points");
let now = Instant::now();
let mut reader = Reader::new("/mnt/c/Users/Nil/Desktop/BigScalars.trk").expect("Read header");
let tractogram = reader.read_all();
let elapsed = now.elapsed();
println!(" read_all {}.{}", elapsed.as_secs(), elapsed.subsec_nanos() / 1000000);
let now = Instant::now();
let mut writer = Writer::new(
"/mnt/c/Users/Nil/Desktop/copy.trk", Some(reader.header.clone())
).expect("Can't create trk file");
for streamline in tractogram.streamlines.into_iter() {
writer.write_points(streamline.to_vec());
}
let elapsed = now.elapsed();
println!(" iter {}.{}", elapsed.as_secs(), elapsed.subsec_nanos() / 1000000);
}
{
print!("Iteration, write all data");
let now = Instant::now();
let reader = Reader::new("/mnt/c/Users/Nil/Desktop/BigScalars.trk").expect("Read header");
let mut writer = Writer::new(
"/mnt/c/Users/Nil/Desktop/copy2.trk", Some(reader.header.clone())
).expect("Can't create trk file");
for item in reader.into_iter() {
writer.write(item);
}
let elapsed = now.elapsed();
println!(" {}.{}", elapsed.as_secs(), elapsed.subsec_nanos() / 1000000);
}
{
print!("Iteration, write only points");
let now = Instant::now();
let reader = Reader::new("/mnt/c/Users/Nil/Desktop/BigScalars.trk").expect("Read header");
let mut writer = Writer::new(
"/mnt/c/Users/Nil/Desktop/copy2.trk", Some(reader.header.clone())
).expect("Can't create trk file");
for (streamline, _, _) in reader.into_iter() {
writer.write_points(streamline);
}
let elapsed = now.elapsed();
println!(" {}.{}", elapsed.as_secs(), elapsed.subsec_nanos() / 1000000);
}
}