perf: optimizations and additional test cases
This commit is contained in:
parent
db4d26e591
commit
44edef9673
9 changed files with 225 additions and 226 deletions
|
|
@ -1,9 +1,8 @@
|
|||
use cosmic_freedesktop_icons::lookup;
|
||||
use criterion::{
|
||||
AxisScale, BenchmarkId, Criterion, PlotConfiguration, black_box, criterion_group,
|
||||
criterion_main,
|
||||
AxisScale, BenchmarkId, Criterion, PlotConfiguration, criterion_group, criterion_main,
|
||||
};
|
||||
use freedesktop_icons::lookup;
|
||||
use gtk4::{IconLookupFlags, IconTheme, TextDirection};
|
||||
use std::hint::black_box;
|
||||
|
||||
pub fn bench_lookups(c: &mut Criterion) {
|
||||
let mut group = c.benchmark_group("ComparisonsLookups");
|
||||
|
|
@ -11,21 +10,13 @@ pub fn bench_lookups(c: &mut Criterion) {
|
|||
group.plot_config(plot_config);
|
||||
|
||||
let args = [
|
||||
"user-home", // (Best case) An icon that can be found in the current theme
|
||||
"firefox", // An icon that can be found in the hicolor default theme
|
||||
"archlinux-logo", // An icon that resides in /usr/share/pixmaps
|
||||
"not-found", // (Worst case) An icon that does not exist
|
||||
"user-home", // (Best case) An icon that can be found in the current theme
|
||||
"firefox", // An icon that can be found in the hicolor default theme
|
||||
"com.valvesoftware.Steam", // An icon that resides in /usr/share/pixmaps
|
||||
"not-found", // (Worst case) An icon that does not exist
|
||||
];
|
||||
|
||||
for arg in args {
|
||||
group.bench_with_input(BenchmarkId::new("freedesktop-icons", arg), arg, |b, arg| {
|
||||
b.iter(|| {
|
||||
lookup(black_box(arg))
|
||||
.with_theme(black_box("Adwaita"))
|
||||
.find()
|
||||
});
|
||||
});
|
||||
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("freedesktop-icons-cache", arg),
|
||||
arg,
|
||||
|
|
@ -40,33 +31,6 @@ pub fn bench_lookups(c: &mut Criterion) {
|
|||
});
|
||||
},
|
||||
);
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("linicon", arg), arg, |b, arg| {
|
||||
b.iter(|| {
|
||||
linicon::lookup_icon(black_box(arg))
|
||||
.from_theme(black_box("Adwaita"))
|
||||
.with_scale(black_box(1))
|
||||
.with_size(black_box(24))
|
||||
.next()
|
||||
});
|
||||
});
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("gtk", arg), arg, |b, arg| {
|
||||
gtk4::init().unwrap();
|
||||
let theme = IconTheme::new();
|
||||
b.iter(|| {
|
||||
theme
|
||||
.lookup_icon(
|
||||
black_box(arg),
|
||||
black_box(&[]),
|
||||
black_box(24),
|
||||
black_box(1),
|
||||
black_box(TextDirection::None),
|
||||
black_box(IconLookupFlags::empty()),
|
||||
)
|
||||
.icon_name()
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
group.finish();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue