Skip to content

read_to_end is very slow (>30x slower than 0.10) #15177

Closed
@arjantop

Description

@arjantop

master:

    #[bench]
    fn read_to_end(b: &mut Bencher) {
        let bytes = Vec::from_elem(100, 10u8);
        b.iter(|| {
            let mut reader = BufReader::new(bytes.as_slice());
            black_box(reader.read_to_end())
        })
    }
running 1 test
test bench::read_to_end ... bench:      2534 ns/iter (+/- 88)

test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured

0.10:

    #[bench]
    fn read_to_end(b: &mut BenchHarness) {
        let bytes = Vec::from_elem(100, 10u8);
        b.iter(|| {
            let mut reader = BufReader::new(bytes.as_slice());
            black_box(reader.read_to_end())
        })
    }
running 1 test
test bench::read_to_end ... bench:        80 ns/iter (+/- 1)

test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured

Metadata

Metadata

Assignees

Labels

A-allocatorsArea: Custom and system allocatorsE-hardCall for participation: Hard difficulty. Experience needed to fix: A lot.I-slowIssue: Problems and improvements with respect to performance of generated code.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions