mirror of
https://github.com/serde-rs/serde.git
synced 2025-09-28 13:30:48 +00:00
More benchmark cleanup
This commit is contained in:
parent
f1606c8eb3
commit
663d3edf90
@ -607,12 +607,6 @@ struct MyMemWriter0 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl MyMemWriter0 {
|
impl MyMemWriter0 {
|
||||||
/*
|
|
||||||
pub fn new() -> MyMemWriter0 {
|
|
||||||
MyMemWriter0::with_capacity(128)
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
pub fn with_capacity(cap: uint) -> MyMemWriter0 {
|
pub fn with_capacity(cap: uint) -> MyMemWriter0 {
|
||||||
MyMemWriter0 {
|
MyMemWriter0 {
|
||||||
buf: Vec::with_capacity(cap)
|
buf: Vec::with_capacity(cap)
|
||||||
@ -640,12 +634,6 @@ struct MyMemWriter1 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl MyMemWriter1 {
|
impl MyMemWriter1 {
|
||||||
/*
|
|
||||||
pub fn new() -> MyMemWriter1 {
|
|
||||||
MyMemWriter1::with_capacity(128)
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
pub fn with_capacity(cap: uint) -> MyMemWriter1 {
|
pub fn with_capacity(cap: uint) -> MyMemWriter1 {
|
||||||
MyMemWriter1 {
|
MyMemWriter1 {
|
||||||
buf: Vec::with_capacity(cap)
|
buf: Vec::with_capacity(cap)
|
||||||
@ -661,7 +649,7 @@ impl MyMemWriter1 {
|
|||||||
|
|
||||||
// LLVM isn't yet able to lower `Vec::push_all` into a memcpy, so this helps
|
// LLVM isn't yet able to lower `Vec::push_all` into a memcpy, so this helps
|
||||||
// MemWriter eke out that last bit of performance.
|
// MemWriter eke out that last bit of performance.
|
||||||
//#[inline(always)]
|
#[inline]
|
||||||
fn push_all_bytes(dst: &mut Vec<u8>, src: &[u8]) {
|
fn push_all_bytes(dst: &mut Vec<u8>, src: &[u8]) {
|
||||||
let dst_len = dst.len();
|
let dst_len = dst.len();
|
||||||
let src_len = src.len();
|
let src_len = src.len();
|
||||||
@ -995,7 +983,7 @@ fn manual_escape<W: Writer>(mut wr: W, log: &Log) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_manual_mem_writer_no_escape() {
|
fn test_manual_vec_no_escape() {
|
||||||
let log = Log::new();
|
let log = Log::new();
|
||||||
|
|
||||||
let mut wr = Vec::with_capacity(1024);
|
let mut wr = Vec::with_capacity(1024);
|
||||||
@ -1006,7 +994,7 @@ fn test_manual_mem_writer_no_escape() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[bench]
|
#[bench]
|
||||||
fn bench_manual_mem_writer_no_escape(b: &mut Bencher) {
|
fn bench_manual_vec_no_escape(b: &mut Bencher) {
|
||||||
let log = Log::new();
|
let log = Log::new();
|
||||||
|
|
||||||
let mut wr = Vec::with_capacity(1024);
|
let mut wr = Vec::with_capacity(1024);
|
||||||
@ -1020,7 +1008,7 @@ fn bench_manual_mem_writer_no_escape(b: &mut Bencher) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_manual_mem_writer_escape() {
|
fn test_manual_vec_escape() {
|
||||||
let log = Log::new();
|
let log = Log::new();
|
||||||
|
|
||||||
let mut wr = Vec::with_capacity(1024);
|
let mut wr = Vec::with_capacity(1024);
|
||||||
@ -1031,7 +1019,7 @@ fn test_manual_mem_writer_escape() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[bench]
|
#[bench]
|
||||||
fn bench_manual_mem_writer_escape(b: &mut Bencher) {
|
fn bench_manual_vec_escape(b: &mut Bencher) {
|
||||||
let log = Log::new();
|
let log = Log::new();
|
||||||
|
|
||||||
let mut wr = Vec::with_capacity(1024);
|
let mut wr = Vec::with_capacity(1024);
|
||||||
@ -1223,6 +1211,32 @@ fn bench_direct_my_mem_writer0(b: &mut Bencher) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_direct_my_mem_writer1() {
|
||||||
|
let log = Log::new();
|
||||||
|
|
||||||
|
let mut wr = MyMemWriter1::with_capacity(1024);
|
||||||
|
direct(wr.by_ref(), &log);
|
||||||
|
|
||||||
|
let json = String::from_utf8(wr.unwrap()).unwrap();
|
||||||
|
assert_eq!(JSON_STR, json.as_slice());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[bench]
|
||||||
|
fn bench_direct_my_mem_writer1(b: &mut Bencher) {
|
||||||
|
let log = Log::new();
|
||||||
|
|
||||||
|
let mut wr = MyMemWriter1::with_capacity(1024);
|
||||||
|
direct(wr.by_ref(), &log);
|
||||||
|
b.bytes = wr.buf.len() as u64;
|
||||||
|
|
||||||
|
b.iter(|| {
|
||||||
|
wr.clear();
|
||||||
|
|
||||||
|
direct(wr.by_ref(), &log);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_decoder() {
|
fn test_decoder() {
|
||||||
let json = serialize::json::from_str(JSON_STR).unwrap();
|
let json = serialize::json::from_str(JSON_STR).unwrap();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user