更新libclamav库1.0.0版本

This commit is contained in:
2023-01-14 18:28:39 +08:00
parent b879ee0b2e
commit 45fe15f472
8531 changed files with 1222046 additions and 177272 deletions

View File

@@ -0,0 +1,50 @@
#[macro_use]
extern crate bencher;
extern crate exr;
use exr::prelude::*;
use bencher::Bencher;
use std::fs;
use std::io::Cursor;
use exr::image::pixel_vec::PixelVec;
/// Read image from file
fn read_single_image_all_channels(bench: &mut Bencher) {
let path = "tests/images/valid/custom/crowskull/crow_uncompressed.exr";
bench.iter(||{
let image = exr::prelude::read()
.no_deep_data().largest_resolution_level()
.all_channels()
.all_layers().all_attributes()
.non_parallel()
.from_file(path).unwrap();
bencher::black_box(image);
})
}
/// Read image from in-memory buffer
fn read_single_image_from_buffer_rgba_channels(bench: &mut Bencher) {
let file = fs::read("tests/images/valid/custom/crowskull/crow_uncompressed.exr").unwrap();
bench.iter(||{
let image = exr::prelude::read()
.no_deep_data().largest_resolution_level()
.rgba_channels(PixelVec::<(f16,f16,f16,f16)>::constructor, PixelVec::set_pixel)
.all_layers().all_attributes()
.non_parallel()
.from_buffered(Cursor::new(file.as_slice())).unwrap();
bencher::black_box(image);
})
}
benchmark_group!(profiling,
read_single_image_from_buffer_rgba_channels,
read_single_image_all_channels,
);
benchmark_main!(profiling);

View File

@@ -0,0 +1,88 @@
#[macro_use]
extern crate bencher;
extern crate exr;
use exr::prelude::*;
use bencher::Bencher;
use std::fs;
use std::io::Cursor;
use exr::image::pixel_vec::PixelVec;
/// Read uncompressed (always single core)
fn read_single_image_uncompressed_rgba(bench: &mut Bencher) {
bench.iter(||{
let path = "tests/images/valid/custom/crowskull/crow_uncompressed.exr";
let image = read_all_rgba_layers_from_file(
path, PixelVec::<(f16,f16,f16,f16)>::constructor, PixelVec::set_pixel
).unwrap();
bencher::black_box(image);
})
}
/// Read from in-memory in parallel
fn read_single_image_uncompressed_from_buffer_rgba(bench: &mut Bencher) {
let file = fs::read("tests/images/valid/custom/crowskull/crow_uncompressed.exr").unwrap();
bench.iter(||{
let image = exr::prelude::read()
.no_deep_data().largest_resolution_level()
.rgba_channels(PixelVec::<(f16,f16,f16,f16)>::constructor, PixelVec::set_pixel)
.all_layers().all_attributes()
.from_buffered(Cursor::new(file.as_slice())).unwrap();
bencher::black_box(image);
})
}
/// Read with multi-core zip decompression
fn read_single_image_zips_rgba(bench: &mut Bencher) {
bench.iter(||{
let path = "tests/images/valid/custom/crowskull/crow_zips.exr";
let image = read_all_rgba_layers_from_file(
path, PixelVec::<(f16,f16,f16,f16)>::constructor, PixelVec::set_pixel
).unwrap();
bencher::black_box(image);
})
}
/// Read with multi-core RLE decompression
fn read_single_image_rle_all_channels(bench: &mut Bencher) {
bench.iter(||{
let path = "tests/images/valid/custom/crowskull/crow_rle.exr";
let image = read_all_flat_layers_from_file(path).unwrap();
bencher::black_box(image);
})
}
/// Read without multi-core ZIP decompression
fn read_single_image_non_parallel_zips_rgba(bench: &mut Bencher) {
bench.iter(||{
let path = "tests/images/valid/custom/crowskull/crow_zips.exr";
let image = exr::prelude::read()
.no_deep_data().largest_resolution_level()
.rgba_channels(PixelVec::<(f16,f16,f16,f16)>::constructor, PixelVec::set_pixel)
.all_layers().all_attributes()
.non_parallel()
.from_file(path).unwrap();
bencher::black_box(image);
})
}
benchmark_group!(read,
read_single_image_uncompressed_from_buffer_rgba,
read_single_image_uncompressed_rgba,
read_single_image_zips_rgba,
read_single_image_rle_all_channels,
read_single_image_non_parallel_zips_rgba
);
benchmark_main!(read);

View File

@@ -0,0 +1,80 @@
#[macro_use]
extern crate bencher;
extern crate exr;
use exr::prelude::*;
use bencher::Bencher;
use std::io::Cursor;
fn write_parallel_any_channels_to_buffered(bench: &mut Bencher) {
let path = "tests/images/valid/custom/crowskull/crow_rle.exr";
let image = read_all_flat_layers_from_file(path).unwrap();
bench.iter(||{
let mut result = Vec::new();
image.write().to_buffered(Cursor::new(&mut result)).unwrap();
bencher::black_box(result);
})
}
fn write_parallel_zip1_to_buffered(bench: &mut Bencher) {
let path = "tests/images/valid/custom/crowskull/crow_rle.exr";
let mut image = read_first_flat_layer_from_file(path).unwrap();
image.layer_data.encoding.compression = Compression::ZIP1;
bench.iter(||{
let mut result = Vec::new();
image.write().to_buffered(Cursor::new(&mut result)).unwrap();
bencher::black_box(result);
})
}
fn write_nonparallel_zip1_to_buffered(bench: &mut Bencher) {
let path = "tests/images/valid/custom/crowskull/crow_rle.exr";
let mut image = read_first_flat_layer_from_file(path).unwrap();
image.layer_data.encoding.compression = Compression::ZIP1;
bench.iter(||{
let mut result = Vec::new();
image.write().non_parallel().to_buffered(Cursor::new(&mut result)).unwrap();
bencher::black_box(result);
})
}
fn write_parallel_zip16_to_buffered(bench: &mut Bencher) {
let path = "tests/images/valid/custom/crowskull/crow_rle.exr";
let mut image = read_first_flat_layer_from_file(path).unwrap();
image.layer_data.encoding.compression = Compression::ZIP16;
bench.iter(||{
let mut result = Vec::new();
image.write().to_buffered(Cursor::new(&mut result)).unwrap();
bencher::black_box(result);
})
}
fn write_uncompressed_to_buffered(bench: &mut Bencher) {
let path = "tests/images/valid/custom/crowskull/crow_uncompressed.exr";
let image = read_all_flat_layers_from_file(path).unwrap();
assert!(image.layer_data.iter().all(|layer| layer.encoding.compression == Compression::Uncompressed));
bench.iter(||{
let mut result = Vec::new();
image.write().to_buffered(Cursor::new(&mut result)).unwrap();
bencher::black_box(result);
})
}
benchmark_group!(write,
write_parallel_any_channels_to_buffered,
write_nonparallel_zip1_to_buffered,
write_parallel_zip1_to_buffered,
write_parallel_zip16_to_buffered,
write_uncompressed_to_buffered
);
benchmark_main!(write);